├── .gitignore ├── .project ├── lifetab_md98486 ├── .gitignore ├── datasheets │ ├── 1908271118_Micron-Tech-MT29F64G08CBABAWP-B_C410865.pdf │ ├── RK3066-Rockchip.pdf │ ├── Rockchip RK3308TRM V1.1 Part1-20180810.pdf │ ├── Rockchip RK3399 TRM V1.4 Part1.pdf │ ├── Rockchip_RK30xx_TRM_V2.0.pdf │ ├── schematics │ │ ├── CM-RK3066_SCH.pdf │ │ └── TAB 10IS(RK3066+MT5931+MT6622).pdf │ └── tps65910.pdf ├── dts │ ├── rk3066a-medion-e10310-u-boot.dtsi │ └── rk3066a-medion-e10310.dts └── u-boot │ └── medion_e10310_defconfig ├── odys-rise10quad ├── .gitignore ├── androoid.txt ├── datasheet │ ├── A33 user manual release 1.1.pdf │ ├── A33_Nand_Flash_Controller_Specification.pdf │ ├── H27UCG8T2BTR-BC.pdf │ ├── K4B4G1646Q.pdf │ └── axp223.pdf ├── dts │ └── sun8i-odys-rise10quad.dts ├── fel-sdboot.sunxi ├── fex │ ├── dumpfex.sh │ ├── lcd.rb │ ├── script.bin │ ├── script.fex │ └── u-boot.fex ├── issues ├── lin.txt ├── mountremfs.sh └── u-boot │ └── odys_rise10quad_defconfig ├── rock5b ├── archive │ ├── README.md │ ├── chromium-ffmpeg │ │ ├── 0001-widevine-support-for-arm.patch │ │ ├── 0002-Run-blink-bindings-generation-single-threaded.patch │ │ ├── 0003-Fix-eu-strip-build-for-newer-GCC.patch │ │ ├── PKGBUILD │ │ ├── REVERT-roll-src-third_party-ffmpeg-m102.patch │ │ ├── REVERT-roll-src-third_party-ffmpeg-m106.patch │ │ ├── angle-wayland-include-protocol.patch │ │ ├── chromium-icu72.patch │ │ ├── disable-GlobalMediaControlsCastStartStop.patch │ │ ├── use-oauth2-client-switches-as-default.patch │ │ └── v8-enhance-Date-parser-to-take-Unicode-SPACE.patch │ ├── librga │ │ └── PKGBUILD │ ├── libv4l-rkmpp-git │ │ └── PKGBUILD │ ├── opera │ │ ├── PKGBUILD │ │ ├── default │ │ ├── eula.html │ │ ├── opera │ │ ├── opera.install │ │ ├── privacy.html │ │ ├── privacy.html:Zone.Identifier │ │ └── terms.html │ └── v4l-utils-mmap │ │ ├── 0001-libv4l2-Support-mmap-to-libv4l-plugin.patch │ │ ├── 0002-Convert-deprecated-libbpf-API.patch │ │ └── PKGBUILD ├── linux-rk3588-midstream │ ├── .project │ ├── PKGBUILD │ ├── extlinux.arch.template │ └── linux.preset ├── mesa-pancsf-git │ ├── LICENSE │ └── PKGBUILD └── unified-remote-server │ ├── PKGBUILD │ ├── meta.prop │ ├── remote.lua │ ├── unified-remote-server.install │ └── urserver.service └── swd └── rk3066.cfg /.gitignore: -------------------------------------------------------------------------------- 1 | backup 2 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | hw_necromancer 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /lifetab_md98486/.gitignore: -------------------------------------------------------------------------------- 1 | backup 2 | -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/1908271118_Micron-Tech-MT29F64G08CBABAWP-B_C410865.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/1908271118_Micron-Tech-MT29F64G08CBABAWP-B_C410865.pdf -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/RK3066-Rockchip.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/RK3066-Rockchip.pdf -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/Rockchip RK3308TRM V1.1 Part1-20180810.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/Rockchip RK3308TRM V1.1 Part1-20180810.pdf -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/Rockchip RK3399 TRM V1.4 Part1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/Rockchip RK3399 TRM V1.4 Part1.pdf -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/Rockchip_RK30xx_TRM_V2.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/Rockchip_RK30xx_TRM_V2.0.pdf -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/schematics/CM-RK3066_SCH.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/schematics/CM-RK3066_SCH.pdf -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/schematics/TAB 10IS(RK3066+MT5931+MT6622).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/schematics/TAB 10IS(RK3066+MT5931+MT6622).pdf -------------------------------------------------------------------------------- /lifetab_md98486/datasheets/tps65910.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/lifetab_md98486/datasheets/tps65910.pdf -------------------------------------------------------------------------------- /lifetab_md98486/dts/rk3066a-medion-e10310-u-boot.dtsi: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 | 3 | #include "rk3066a-u-boot.dtsi" 4 | 5 | /{ 6 | chosen { 7 | u-boot,spl-boot-order = &mmc0, &emmc, &nfc; 8 | stdout-path = "serial2:1500000n8"; 9 | }; 10 | }; 11 | 12 | &saradc { 13 | vdd-microvolts = <2500000>; 14 | u-boot,dm-spl; 15 | }; 16 | 17 | &cru { 18 | u-boot,dm-pre-reloc; 19 | }; 20 | 21 | &dmc { 22 | compatible = "rockchip,rk3066-dmc", "syscon"; 23 | rockchip,pctl-timing = <0x12c 0xc8 0x1f4 0x1e 0x4e 0x4 0x69 0x6 24 | 0x3 0x0 0x6 0x5 0xc 0x10 0x6 0x4 25 | 0x4 0x5 0x4 0x200 0x3 0xa 0x40 0x0 26 | 0x1 0x5 0x5 0x3 0xc 0x1e 0x100 0x0 27 | 0x4 0x0>; 28 | rockchip,phy-timing = <0x208c6690 0x690878 0x10022a00 29 | 0x220 0x40 0x0 0x0>; 30 | rockchip,sdram-params = <0x24716310 0 2 300000000 3 9 0>; 31 | }; 32 | 33 | &mmc0 { 34 | fifo-mode; 35 | max-frequency = <4000000>; 36 | u-boot,dm-spl; 37 | u-boot,spl-fifo-mode; 38 | status = "okay"; 39 | }; 40 | 41 | &emmc { 42 | fifo-mode; 43 | max-frequency = <4000000>; 44 | u-boot,dm-spl; 45 | u-boot,spl-fifo-mode; 46 | status = "okay"; 47 | cap-mmc-highspeed; 48 | non-removable; 49 | }; 50 | 51 | &nfc { 52 | u-boot,dm-spl; 53 | 54 | nand@0 { 55 | u-boot,dm-spl; 56 | }; 57 | }; 58 | 59 | &noc { 60 | compatible = "rockchip,rk3066-noc", "syscon"; 61 | }; 62 | 63 | &timer2 { 64 | clock-frequency = <24000000>; 65 | u-boot,dm-pre-reloc; 66 | }; 67 | 68 | &uart2 { 69 | u-boot,dm-pre-reloc; 70 | }; 71 | 72 | 73 | &usb_host { 74 | u-boot,dm-spl; 75 | }; 76 | 77 | &usb_otg { 78 | u-boot,dm-spl; 79 | }; 80 | 81 | &usbphy { 82 | u-boot,dm-spl; 83 | }; 84 | 85 | &usbphy0 { 86 | u-boot,dm-spl; 87 | }; 88 | 89 | &usbphy1 { 90 | u-boot,dm-spl; 91 | }; -------------------------------------------------------------------------------- /lifetab_md98486/dts/rk3066a-medion-e10310.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 | /* 3 | * Copyright (c) 2014 Romain Perier 4 | */ 5 | 6 | /dts-v1/; 7 | #include "rk3066a.dtsi" 8 | 9 | / { 10 | model = "Medion E10310"; 11 | compatible = "Medion,E10310", "rockchip,rk3066a"; 12 | 13 | aliases { 14 | mmc0 = &mmc0; 15 | emmc = &emmc; 16 | }; 17 | 18 | chosen { 19 | stdout-path = "serial2:115200n8"; 20 | }; 21 | 22 | memory@60000000 { 23 | reg = <0x60000000 0x40000000>; 24 | device_type = "memory"; 25 | }; 26 | 27 | adc-keys { 28 | compatible = "adc-keys"; 29 | io-channels = <&saradc 1>; 30 | io-channel-names = "buttons"; 31 | keyup-threshold-microvolt = <2500000>; 32 | poll-interval = <100>; 33 | 34 | recovery { 35 | label = "recovery"; 36 | press-threshold-microvolt = <0>; 37 | }; 38 | }; 39 | 40 | hdmi_con { 41 | compatible = "hdmi-connector"; 42 | type = "c"; 43 | 44 | port { 45 | hdmi_con_in: endpoint { 46 | remote-endpoint = <&hdmi_out_con>; 47 | }; 48 | }; 49 | }; 50 | 51 | vdd_log: vdd-log { 52 | compatible = "pwm-regulator"; 53 | pwms = <&pwm3 0 1000>; 54 | regulator-name = "vdd_log"; 55 | regulator-min-microvolt = <1200000>; 56 | regulator-max-microvolt = <1200000>; 57 | regulator-always-on; 58 | voltage-table = <1000000 100>, <1200000 42>; 59 | status = "okay"; 60 | }; 61 | 62 | vsys: vsys-regulator { 63 | compatible = "regulator-fixed"; 64 | regulator-name = "vsys"; 65 | regulator-min-microvolt = <5000000>; 66 | regulator-max-microvolt = <5000000>; 67 | regulator-boot-on; 68 | }; 69 | 70 | vcc_sd0: sdmmc-regulator { 71 | compatible = "regulator-fixed"; 72 | regulator-name = "sdmmc-supply"; 73 | regulator-min-microvolt = <3300000>; 74 | regulator-max-microvolt = <3300000>; 75 | gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>; 76 | pinctrl-0 = <&sdmmc_pwr>; 77 | startup-delay-us = <100000>; 78 | vin-supply = <&vcc_io>; 79 | }; 80 | 81 | vcc_emmc: emmc-regulator { 82 | compatible = "regulator-fixed"; 83 | regulator-name = "emmc_vccq"; 84 | regulator-min-microvolt = <3000000>; 85 | regulator-max-microvolt = <3000000>; 86 | vin-supply = <&vsys>; 87 | }; 88 | 89 | vcc_host: usb-host-regulator { 90 | compatible = "regulator-fixed"; 91 | enable-active-high; 92 | gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 93 | pinctrl-0 = <&host_drv>; 94 | pinctrl-names = "default"; 95 | regulator-always-on; 96 | regulator-name = "host-pwr"; 97 | regulator-min-microvolt = <5000000>; 98 | regulator-max-microvolt = <5000000>; 99 | startup-delay-us = <100000>; 100 | vin-supply = <&vcc_io>; 101 | }; 102 | 103 | vcc_otg: usb-otg-regulator { 104 | compatible = "regulator-fixed"; 105 | enable-active-high; 106 | gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 107 | pinctrl-0 = <&otg_drv>; 108 | pinctrl-names = "default"; 109 | regulator-always-on; 110 | regulator-name = "vcc_otg"; 111 | regulator-min-microvolt = <5000000>; 112 | regulator-max-microvolt = <5000000>; 113 | startup-delay-us = <100000>; 114 | vin-supply = <&vcc_io>; 115 | }; 116 | 117 | vcc_wifi: sdio-regulator { 118 | compatible = "regulator-fixed"; 119 | enable-active-high; 120 | gpio = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>; 121 | pinctrl-0 = <&wifi_pwr>; 122 | pinctrl-names = "default"; 123 | regulator-name = "vcc_wifi"; 124 | regulator-min-microvolt = <3300000>; 125 | regulator-max-microvolt = <3300000>; 126 | startup-delay-us = <100000>; 127 | vin-supply = <&vcc_io>; 128 | }; 129 | }; 130 | 131 | &hdmi { 132 | status = "okay"; 133 | }; 134 | 135 | &hdmi_in_vop1 { 136 | status = "disabled"; 137 | }; 138 | 139 | &hdmi_out { 140 | hdmi_out_con: endpoint { 141 | remote-endpoint = <&hdmi_con_in>; 142 | }; 143 | }; 144 | 145 | &cpu0 { 146 | cpu-supply = <&vdd_arm>; 147 | }; 148 | 149 | &cpu1 { 150 | cpu-supply = <&vdd_arm>; 151 | }; 152 | 153 | &i2c1 { 154 | status = "okay"; 155 | clock-frequency = <400000>; 156 | 157 | tps: tps@2d { 158 | reg = <0x2d>; 159 | 160 | interrupt-parent = <&gpio6>; 161 | interrupts = ; 162 | 163 | vcc1-supply = <&vsys>; 164 | vcc2-supply = <&vsys>; 165 | vcc3-supply = <&vsys>; 166 | vcc4-supply = <&vsys>; 167 | vcc5-supply = <&vcc_io>; 168 | vcc6-supply = <&vcc_io>; 169 | vcc7-supply = <&vsys>; 170 | vccio-supply = <&vsys>; 171 | 172 | regulators { 173 | vcc_rtc: regulator@0 { 174 | regulator-name = "vcc_rtc"; 175 | regulator-always-on; 176 | }; 177 | 178 | vcc_io: regulator@1 { 179 | regulator-name = "vcc_io"; 180 | regulator-min-microvolt = <3300000>; 181 | regulator-max-microvolt = <3300000>; 182 | regulator-always-on; 183 | }; 184 | 185 | vdd_arm: regulator@2 { 186 | regulator-name = "vdd_arm"; 187 | regulator-min-microvolt = <600000>; 188 | regulator-max-microvolt = <1500000>; 189 | regulator-boot-on; 190 | regulator-always-on; 191 | }; 192 | 193 | vcc_ddr: regulator@3 { 194 | regulator-name = "vcc_ddr"; 195 | regulator-min-microvolt = <600000>; 196 | regulator-max-microvolt = <1500000>; 197 | regulator-boot-on; 198 | regulator-always-on; 199 | }; 200 | 201 | vcc18_cif: regulator@5 { 202 | regulator-name = "vcc18_cif"; 203 | regulator-min-microvolt = <1800000>; 204 | regulator-max-microvolt = <1800000>; 205 | regulator-always-on; 206 | }; 207 | 208 | vdd_11: regulator@6 { 209 | regulator-name = "vdd_11"; 210 | regulator-min-microvolt = <1100000>; 211 | regulator-max-microvolt = <1100000>; 212 | regulator-always-on; 213 | }; 214 | 215 | vcc_25: regulator@7 { 216 | regulator-name = "vcc_25"; 217 | regulator-min-microvolt = <2500000>; 218 | regulator-max-microvolt = <2500000>; 219 | regulator-always-on; 220 | }; 221 | 222 | vcc_18: regulator@8 { 223 | regulator-name = "vcc_18"; 224 | regulator-min-microvolt = <1800000>; 225 | regulator-max-microvolt = <1800000>; 226 | regulator-always-on; 227 | }; 228 | 229 | vcc25_hdmi: regulator@9 { 230 | regulator-name = "vcc25_hdmi"; 231 | regulator-min-microvolt = <2500000>; 232 | regulator-max-microvolt = <2500000>; 233 | regulator-always-on; 234 | }; 235 | 236 | vcca_33: regulator@10 { 237 | regulator-name = "vcca_33"; 238 | regulator-min-microvolt = <3300000>; 239 | regulator-max-microvolt = <3300000>; 240 | regulator-always-on; 241 | }; 242 | 243 | vcc_rmii: regulator@11 { 244 | regulator-name = "vcc_rmii"; 245 | regulator-min-microvolt = <3300000>; 246 | regulator-max-microvolt = <3300000>; 247 | }; 248 | 249 | vcc28_cif: regulator@12 { 250 | regulator-name = "vcc28_cif"; 251 | regulator-min-microvolt = <2800000>; 252 | regulator-max-microvolt = <2800000>; 253 | regulator-always-on; 254 | }; 255 | }; 256 | }; 257 | }; 258 | 259 | /* must be included after &tps gets defined */ 260 | #include "tps65910.dtsi" 261 | 262 | &mmc0 { 263 | status = "okay"; 264 | bus-width = <4>; 265 | pinctrl-names = "default"; 266 | pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; 267 | vmmc-supply = <&vcc_sd0>; 268 | }; 269 | 270 | &emmc { 271 | status = "okay"; 272 | bus-width = <8>; 273 | cap-mmc-highspeed; 274 | non-removable; 275 | pinctrl-names = "default"; 276 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; 277 | vmmc-supply = <&vcc_emmc>; 278 | vqmmc-supply = <&vcc_emmc>; 279 | }; 280 | 281 | &pinctrl { 282 | usb-host { 283 | host_drv: host-drv { 284 | rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_default>; 285 | }; 286 | }; 287 | 288 | usb-otg { 289 | otg_drv: otg-drv { 290 | rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_default>; 291 | }; 292 | }; 293 | 294 | sdmmc { 295 | sdmmc_pwr: sdmmc-pwr { 296 | rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_default>; 297 | }; 298 | }; 299 | 300 | sdio { 301 | wifi_pwr: wifi-pwr { 302 | rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 303 | }; 304 | }; 305 | }; 306 | 307 | &nfc { 308 | #address-cells = <1>; 309 | #size-cells = <0>; 310 | status = "okay"; 311 | 312 | nand@0 { 313 | reg = <0>; 314 | label = "rk-nand"; 315 | nand-bus-width = <8>; 316 | nand-ecc-mode = "hw"; 317 | nand-ecc-step-size = <1024>; 318 | nand-ecc-strength = <40>; 319 | nand-is-boot-medium; 320 | rockchip,boot-blks = <8>; 321 | rockchip,boot-ecc-strength = <24>; 322 | }; 323 | }; 324 | 325 | &saradc { 326 | vref-supply = <&vcc_25>; 327 | status = "okay"; 328 | }; 329 | 330 | &pwm3 { 331 | status = "okay"; 332 | }; 333 | 334 | &uart0 { 335 | status = "okay"; 336 | }; 337 | 338 | &uart1 { 339 | status = "okay"; 340 | }; 341 | 342 | &uart2 { 343 | status = "okay"; 344 | }; 345 | 346 | &uart3 { 347 | status = "okay"; 348 | }; 349 | 350 | &usbphy { 351 | status = "okay"; 352 | }; 353 | 354 | &usb_host { 355 | vbus-supply = <&vcc_host>; 356 | status = "okay"; 357 | }; 358 | 359 | &usb_otg { 360 | vbus-supply = <&vcc_otg>; 361 | status = "okay"; 362 | }; 363 | 364 | &vop0 { 365 | status = "okay"; 366 | }; 367 | 368 | &wdt { 369 | status = "okay"; 370 | }; 371 | -------------------------------------------------------------------------------- /lifetab_md98486/u-boot/medion_e10310_defconfig: -------------------------------------------------------------------------------- 1 | CONFIG_ARM=y 2 | CONFIG_SKIP_LOWLEVEL_INIT_ONLY=y 3 | CONFIG_SPL_SKIP_LOWLEVEL_INIT_ONLY=y 4 | CONFIG_TPL_SKIP_LOWLEVEL_INIT_ONLY=y 5 | # CONFIG_SPL_SYS_THUMB_BUILD is not set 6 | # CONFIG_TPL_SYS_THUMB_BUILD is not set 7 | # CONFIG_SPL_USE_ARCH_MEMCPY is not set 8 | # CONFIG_SPL_USE_ARCH_MEMSET is not set 9 | CONFIG_ARCH_ROCKCHIP=y 10 | 11 | CONFIG_TPL_TEXT_BASE=0x10080C04 12 | CONFIG_TPL_STACK=0x1008FFFF 13 | CONFIG_TPL_MAX_SIZE=0x7ffc 14 | 15 | CONFIG_SPL_TEXT_BASE=0x60000000 16 | CONFIG_SPL_STACK=0x1008FFFF 17 | CONFIG_SPL_MAX_SIZE=0x32000 18 | CONFIG_SPL_STACK_R_ADDR=0x70000000 19 | CONFIG_SPL_SEPARATE_BSS=y 20 | 21 | CONFIG_TEXT_BASE=0x60408000 22 | 23 | CONFIG_SYS_LOAD_ADDR=0x70800800 24 | CONFIG_SYS_MALLOC_F_LEN=0x1000 25 | CONFIG_NR_DRAM_BANKS=1 26 | CONFIG_ENV_SIZE=0x8000 27 | CONFIG_ROCKCHIP_RK3066=y 28 | # CONFIG_ROCKCHIP_STIMER is not set 29 | 30 | 31 | CONFIG_TARGET_MK808=y 32 | 33 | CONFIG_DEBUG_UART_BASE=0x20064000 34 | CONFIG_DEBUG_UART_CLOCK=24000000 35 | CONFIG_SPL_FS_FAT=y 36 | 37 | 38 | CONFIG_SPL_PAYLOAD="u-boot.bin" 39 | CONFIG_DEBUG_UART=y 40 | CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y 41 | CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x78000000 42 | CONFIG_SD_BOOT=y 43 | CONFIG_USE_PREBOOT=y 44 | CONFIG_DEFAULT_DEVICE_TREE="rk3066a-medion-e10310" 45 | CONFIG_DEFAULT_FDT_FILE="rk3066a-medion-e10310.dtb" 46 | # CONFIG_DISPLAY_CPUINFO is not set 47 | CONFIG_DISPLAY_BOARDINFO_LATE=y 48 | CONFIG_BOARD_LATE_INIT=y 49 | 50 | CONFIG_SPL_PAD_TO=0x7f8000 51 | CONFIG_SPL_NO_BSS_LIMIT=y 52 | # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set 53 | 54 | CONFIG_SPL_STACK_R=y 55 | CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x400000 56 | CONFIG_SPL_FS_EXT4=y 57 | CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=2 58 | CONFIG_TPL_NEEDS_SEPARATE_STACK=y 59 | CONFIG_SYS_CBSIZE=256 60 | CONFIG_SYS_PBSIZE=276 61 | # CONFIG_BOOTM_PLAN9 is not set 62 | # CONFIG_BOOTM_RTEMS is not set 63 | # CONFIG_BOOTM_VXWORKS is not set 64 | CONFIG_CMD_GPT=y 65 | CONFIG_CMD_MMC=y 66 | # CONFIG_CMD_SETEXPR is not set 67 | CONFIG_CMD_CACHE=y 68 | CONFIG_CMD_TIME=y 69 | CONFIG_CMD_REGULATOR=y 70 | CONFIG_SPL_OF_CONTROL=y 71 | CONFIG_TPL_OF_CONTROL=y 72 | CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" 73 | CONFIG_OF_DTB_PROPS_REMOVE=y 74 | CONFIG_TPL_OF_PLATDATA=y 75 | CONFIG_SYS_RELOC_GD_ENV_ADDR=y 76 | # CONFIG_NET is not set 77 | CONFIG_TPL_DM=y 78 | CONFIG_DM_RESET=y 79 | # CONFIG_DM_WARN is not set 80 | CONFIG_REGMAP=y 81 | CONFIG_SPL_REGMAP=y 82 | CONFIG_TPL_REGMAP=y 83 | CONFIG_SYSCON=y 84 | CONFIG_SPL_SYSCON=y 85 | CONFIG_TPL_SYSCON=y 86 | # CONFIG_SIMPLE_BUS is not set 87 | # CONFIG_SPL_SIMPLE_BUS is not set 88 | CONFIG_CLK=y 89 | CONFIG_SPL_CLK=y 90 | CONFIG_TPL_CLK=y 91 | CONFIG_ROCKCHIP_GPIO=y 92 | # CONFIG_SPL_DM_I2C is not set 93 | CONFIG_LED=y 94 | CONFIG_LED_GPIO=y 95 | CONFIG_MMC_IO_VOLTAGE=y 96 | CONFIG_SPL_MMC_IO_VOLTAGE=y 97 | CONFIG_MMC_UHS_SUPPORT=y 98 | CONFIG_SPL_MMC_UHS_SUPPORT=y 99 | CONFIG_MMC_DW=y 100 | CONFIG_MMC_DW_ROCKCHIP=y 101 | CONFIG_SF_DEFAULT_SPEED=20000000 102 | CONFIG_PINCTRL=y 103 | CONFIG_DM_PMIC=y 104 | # CONFIG_SPL_PMIC_CHILDREN is not set 105 | CONFIG_DM_REGULATOR=y 106 | CONFIG_SPL_DM_REGULATOR=y 107 | #CONFIG_SPL_POWER=y 108 | #CONFIG_SPL_PHY=y 109 | CONFIG_DM_REGULATOR_FIXED=y 110 | CONFIG_DM_REGULATOR_GPIO=y 111 | CONFIG_RAM=y 112 | CONFIG_SPL_RAM=y 113 | CONFIG_TPL_RAM=y 114 | CONFIG_DM_RESET=y 115 | # CONFIG_REQUIRE_SERIAL_CONSOLE is not set 116 | CONFIG_DEBUG_UART_SHIFT=2 117 | CONFIG_ROCKCHIP_SERIAL=y 118 | CONFIG_SYSRESET=y 119 | CONFIG_TIMER=y 120 | CONFIG_SPL_TIMER=y 121 | CONFIG_TPL_TIMER=y 122 | CONFIG_DESIGNWARE_APB_TIMER=y 123 | CONFIG_SPL_TINY_MEMSET=y 124 | CONFIG_ERRNO_STR=y 125 | # CONFIG_TPL_OF_LIBFDT is not set 126 | 127 | CONFIG_SPL_ENV_SUPPORT=y 128 | CONFIG_SPL_MMC_WRITE=y 129 | CONFIG_SPL_USB_HOST=y 130 | CONFIG_SPL_USB_STORAGE=y 131 | CONFIG_SPL_USB_GADGET=y 132 | CONFIG_CMD_ADC=y 133 | CONFIG_CMD_USB=y 134 | CONFIG_CMD_ROCKUSB=y 135 | CONFIG_CMD_USB_MASS_STORAGE=y 136 | #CONFIG_CMD_NAND=y 137 | CONFIG_SPL_ADC=y 138 | CONFIG_SPL_SARADC_ROCKCHIP=y 139 | CONFIG_FASTBOOT_BUF_ADDR=0x80000000 140 | CONFIG_USB=y 141 | CONFIG_USB_DWC2=y 142 | CONFIG_ROCKCHIP_USB2_PHY=y 143 | CONFIG_USB_GADGET=y 144 | CONFIG_USB_GADGET_DWC2_OTG=y 145 | CONFIG_USB_FUNCTION_ROCKUSB=y 146 | CONFIG_SPL_USB_FUNCTION_ROCKUSB=y 147 | CONFIG_NAND_BOOT=y 148 | CONFIG_MTD=y 149 | CONFIG_SPL_MTD_SUPPORT=y 150 | CONFIG_SPL_NAND_SUPPORT=y 151 | CONFIG_SPL_NAND_DRIVERS=y 152 | CONFIG_ROCKCHIP_NAND=y 153 | CONFIG_MTD_RAW_NAND=y 154 | CONFIG_MTD_NAND_CORE=y 155 | CONFIG_SYS_NAND_BLOCK_SIZE=0x20000 156 | CONFIG_SYS_NAND_ONFI_DETECTION=y 157 | CONFIG_SYS_NAND_PAGE_COUNT=0x100 158 | CONFIG_SYS_NAND_PAGE_SIZE=0x22E8 159 | CONFIG_SYS_NAND_OOBSIZE=0x2E8 160 | CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y 161 | CONFIG_SYS_NAND_U_BOOT_OFFS=0x4000 162 | CONFIG_SPL_NAND_RAW_ONLY=y 163 | CONFIG_TPL_NAND_INIT=y 164 | CONFIG_SPL_NAND_LOAD=y 165 | CONFIG_SPL_NAND_BASE=y 166 | CONFIG_SPL_NAND_IDENT=y 167 | CONFIG_SPL_NAND_BBT=y 168 | CONFIG_SPL_NAND_SIMPLE=y 169 | -------------------------------------------------------------------------------- /odys-rise10quad/.gitignore: -------------------------------------------------------------------------------- 1 | backup 2 | kernel 3 | -------------------------------------------------------------------------------- /odys-rise10quad/datasheet/A33 user manual release 1.1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/datasheet/A33 user manual release 1.1.pdf -------------------------------------------------------------------------------- /odys-rise10quad/datasheet/A33_Nand_Flash_Controller_Specification.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/datasheet/A33_Nand_Flash_Controller_Specification.pdf -------------------------------------------------------------------------------- /odys-rise10quad/datasheet/H27UCG8T2BTR-BC.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/datasheet/H27UCG8T2BTR-BC.pdf -------------------------------------------------------------------------------- /odys-rise10quad/datasheet/K4B4G1646Q.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/datasheet/K4B4G1646Q.pdf -------------------------------------------------------------------------------- /odys-rise10quad/datasheet/axp223.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/datasheet/axp223.pdf -------------------------------------------------------------------------------- /odys-rise10quad/dts/sun8i-odys-rise10quad.dts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 Hans de Goede 3 | * 4 | * This file is dual-licensed: you can use it either under the terms 5 | * of the GPL or the X11 license, at your option. Note that this dual 6 | * licensing only applies to this file, and not this project as a 7 | * whole. 8 | * 9 | * a) This file is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU General Public License as 11 | * published by the Free Software Foundation; either version 2 of the 12 | * License, or (at your option) any later version. 13 | * 14 | * This file is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU General Public License for more details. 18 | * 19 | * Or, alternatively, 20 | * 21 | * b) Permission is hereby granted, free of charge, to any person 22 | * obtaining a copy of this software and associated documentation 23 | * files (the "Software"), to deal in the Software without 24 | * restriction, including without limitation the rights to use, 25 | * copy, modify, merge, publish, distribute, sublicense, and/or 26 | * sell copies of the Software, and to permit persons to whom the 27 | * Software is furnished to do so, subject to the following 28 | * conditions: 29 | * 30 | * The above copyright notice and this permission notice shall be 31 | * included in all copies or substantial portions of the Software. 32 | * 33 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 | * OTHER DEALINGS IN THE SOFTWARE. 41 | */ 42 | 43 | /dts-v1/; 44 | #include "sun8i-a33.dtsi" 45 | #include "sun8i-q8-common.dtsi" 46 | 47 | / { 48 | model = "Odys Rise10Quad"; 49 | compatible = "allwinner,q8-a33", "allwinner,sun8i-a33"; 50 | 51 | aliases { 52 | /* serial0 = &uart0; */ 53 | ethernet0 = &sdio_wifi; 54 | }; 55 | }; 56 | 57 | &tcon0_out { 58 | tcon0_out_lcd: endpoint@0 { 59 | reg = <0>; 60 | remote-endpoint = <&panel_input>; 61 | }; 62 | }; 63 | 64 | &nfc { 65 | status = "okay"; 66 | 67 | pinctrl-0 = <&nand_pins &nand_cs0_pin &nand_rb0_pin &nand_cs1_pin &nand_rb1_pin>; 68 | 69 | /*2*8Gb SKHynix H27UCG8T2BTR-BC*/ 70 | nand0: nand@0 { 71 | reg = <0>; 72 | allwinner,rb = <0>; 73 | nand-ecc-mode = "hw"; 74 | nand-ecc-strength = <40>; 75 | nand-ecc-step-size = <1024>; 76 | nand-on-flash-bbt; 77 | }; 78 | 79 | nand1: nand@1 { 80 | reg = <1>; 81 | allwinner,rb = <1>; 82 | nand-ecc-mode = "hw"; 83 | nand-ecc-strength = <40>; 84 | nand-ecc-step-size = <1024>; 85 | nand-on-flash-bbt; 86 | }; 87 | 88 | /* Concatenated MTD dev for 2 chips 89 | flash { 90 | compatible = "mtd-concat"; 91 | devices = <&nand0 &nand1>; 92 | 93 | partitions { 94 | compatible = "fixed-partitions"; 95 | #address-cells = <2>; 96 | #size-cells = <2>; 97 | 98 | partition@0,0 { 99 | label = "bootloader"; 100 | reg = <0x0 0x0000000 0x0400000>; 101 | }; 102 | partition@0,400000 { 103 | label = "nanddisk"; 104 | reg = <0x0 0x0400000 0x3f 0xfc00000>; 105 | }; 106 | }; 107 | };*/ 108 | }; 109 | 110 | 111 | &codec { 112 | status = "okay"; 113 | }; 114 | 115 | &dai { 116 | status = "okay"; 117 | }; 118 | 119 | &sound { 120 | status = "okay"; 121 | }; 122 | 123 | &wifi_pwrseq { 124 | reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; 125 | /* clocks = <&rtc 1>;*/ 126 | /* clock-names = "ext_clock";*/ 127 | }; 128 | 129 | 130 | 131 | /* 132 | *&cpu0_opp_table { 133 | * opp-1104000000 { 134 | * opp-hz = /bits/ 64 <1104000000>; 135 | * opp-microvolt = <1320000>; 136 | * clock-latency-ns = <244144>; 137 | * }; 138 | * 139 | * opp-1200000000 { 140 | * opp-hz = /bits/ 64 <1200000000>; 141 | * opp-microvolt = <1320000>; 142 | * clock-latency-ns = <244144>; 143 | * }; 144 | * 145 | * 146 | * opp-1300000000 { 147 | * opp-hz = /bits/ 64 <1300000000>; 148 | * opp-microvolt = <1320000>; 149 | * clock-latency-ns = <244144>; 150 | * }; 151 | * 152 | * opp-1400000000 { 153 | * opp-hz = /bits/ 64 <1400000000>; 154 | * opp-microvolt = <1400000>; 155 | * clock-latency-ns = <244144>; 156 | * }; 157 | * 158 | * opp-1490000000 { 159 | * opp-hz = /bits/ 64 <1480000000>; 160 | * opp-microvolt = <1520000>; 161 | * clock-latency-ns = <244144>; 162 | * }; 163 | * 164 | *}; 165 | */ 166 | 167 | &ohci0 { 168 | status = "okay"; 169 | }; 170 | 171 | &usb_otg { 172 | dr_mode = "host"; 173 | }; 174 | 175 | /* 176 | *®_dcdc3 { 177 | * regulator-min-microvolt = <1520000>; 178 | * regulator-max-microvolt = <1520000>; 179 | *}; 180 | * 181 | *®_dcdc2 { 182 | * regulator-max-microvolt = <1520000>; 183 | *}; 184 | * 185 | *®_dcdc5 { 186 | * regulator-min-microvolt = <1500000>; 187 | * regulator-max-microvolt = <1500000>; 188 | *}; 189 | */ -------------------------------------------------------------------------------- /odys-rise10quad/fel-sdboot.sunxi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/fel-sdboot.sunxi -------------------------------------------------------------------------------- /odys-rise10quad/fex/dumpfex.sh: -------------------------------------------------------------------------------- 1 | # Unlike, other allwinner devices,Script.bin is not present in the vfat partition(nanda) as file. 2 | # Instead, It is located 0x43000000, it's size is 0x00020000. script.bin can be extracted from /dev/mem using mmap() or sunxi-tools firmware_extractor. 3 | dd if=/dev/mem of=script.bin bs=1 count=131072 skip=1124073472 4 | -------------------------------------------------------------------------------- /odys-rise10quad/fex/lcd.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | if !ARGV[0] || !File.exists?(ARGV[0]) then 4 | abort "Usage: ruby #{__FILE__} [fex_file_name]\n" 5 | end 6 | 7 | def parse_fex_section(filename, section) 8 | results = {} 9 | current_section = "" 10 | File.open(filename).each_line {|l| 11 | current_section = $1 if l =~ /^\[(.*?)\]/ 12 | next if current_section != section 13 | results[$1] = $2.strip if l =~ /^(\S+)\s*\=\s*(.*)/ 14 | results[$1] = $2.to_i if l =~ /^(\S+)\s*\=\s*(\d+)\s*$/ 15 | } 16 | return results 17 | end 18 | 19 | def print_video_lcd_mode(lcd0_para, vt_div) 20 | x = lcd0_para["lcd_x"] 21 | y = lcd0_para["lcd_y"] 22 | depth = { 0 => 24, 1 => 18 }[lcd0_para["lcd_frm"]] 23 | pclk_khz = lcd0_para["lcd_dclk_freq"] * 1000 24 | hs = [1, (lcd0_para["lcd_hv_hspw"] || lcd0_para["lcd_hspw"])].max 25 | vs = [1, (lcd0_para["lcd_hv_vspw"] || lcd0_para["lcd_vspw"])].max 26 | le = lcd0_para["lcd_hbp"] - hs 27 | ri = lcd0_para["lcd_ht"] - x - lcd0_para["lcd_hbp"] 28 | up = lcd0_para["lcd_vbp"] - vs 29 | lo = lcd0_para["lcd_vt"] / vt_div - y - lcd0_para["lcd_vbp"] 30 | 31 | abort "Unsupported 'lcd_frm' parameter" if !depth 32 | 33 | printf("CONFIG_VIDEO_LCD_MODE=\"" + 34 | "x:#{x},y:#{y},depth:#{depth},pclk_khz:#{pclk_khz}," + 35 | "le:#{le},ri:#{ri},up:#{up},lo:#{lo},hs:#{hs},vs:#{vs}," + 36 | "sync:3,vmode:0\"\n") 37 | end 38 | 39 | lcd0_para = parse_fex_section(ARGV[0], "lcd0_para") 40 | abort "Not a valid 'lcd0_para' section" if lcd0_para["lcd_used"] != 1 41 | 42 | printf("== for sun[457]i ==\n") 43 | print_video_lcd_mode(lcd0_para, 2) 44 | 45 | printf("\n== for sun[68]i ==\n") 46 | print_video_lcd_mode(lcd0_para, 1) 47 | -------------------------------------------------------------------------------- /odys-rise10quad/fex/script.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/fex/script.bin -------------------------------------------------------------------------------- /odys-rise10quad/fex/script.fex: -------------------------------------------------------------------------------- 1 | [product] 2 | version = "100" 3 | machine = "evb" 4 | 5 | [platform] 6 | eraseflag = 1 7 | next_work = 3 8 | 9 | [target] 10 | boot_clock = 1008 11 | storage_type = 0 12 | burn_key = 1 13 | 14 | [key_detect_en] 15 | keyen_flag = 1 16 | 17 | [power_sply] 18 | dcdc1_vol = 3000 19 | dcdc2_vol = 1100 20 | dcdc3_vol = 1200 21 | dcdc4_vol = 0 22 | dcdc5_vol = 1500 23 | aldo2_vol = 2500 24 | aldo3_vol = 3000 25 | 26 | [card_boot] 27 | logical_start = 40960 28 | sprite_gpio0 = 29 | next_work = 3 30 | 31 | [card0_boot_para] 32 | card_ctrl = 0 33 | card_high_speed = 1 34 | card_line = 4 35 | sdc_d1 = port:PF00<2><1><2> 36 | sdc_d0 = port:PF01<2><1><2> 37 | sdc_clk = port:PF02<2><1><2> 38 | sdc_cmd = port:PF03<2><1><2> 39 | sdc_d3 = port:PF04<2><1><2> 40 | sdc_d2 = port:PF05<2><1><2> 41 | 42 | [card2_boot_para] 43 | card_ctrl = 2 44 | card_high_speed = 1 45 | card_line = 4 46 | sdc_2xmode = 1 47 | sdc_clk = port:PC05<3><1><2> 48 | sdc_cmd = port:PC06<3><1><2> 49 | sdc_d0 = port:PC08<3><1><2> 50 | sdc_d1 = port:PC09<3><1><2> 51 | sdc_d2 = port:PC10<3><1><2> 52 | sdc_d3 = port:PC11<3><1><2> 53 | 54 | [twi_para] 55 | twi_port = 0 56 | twi_scl = port:PH02<2> 57 | twi_sda = port:PH03<2> 58 | 59 | [uart_para] 60 | uart_debug_port = 0 61 | uart_debug_tx = port:PF02<3><1> 62 | uart_debug_rx = port:PF04<3><1> 63 | 64 | [force_uart_para] 65 | force_uart_port = 0 66 | force_uart_tx = port:PF02<3><1> 67 | force_uart_rx = port:PF04<3><1> 68 | 69 | [jtag_para] 70 | jtag_enable = 1 71 | jtag_ms = port:PF00<3> 72 | jtag_ck = port:PF05<3> 73 | jtag_do = port:PF03<3> 74 | jtag_di = port:PF01<3> 75 | 76 | [clock] 77 | pll3 = 297 78 | pll4 = 300 79 | pll6 = 600 80 | pll8 = 408 81 | pll9 = 480 82 | pll10 = 297 83 | pll_cpupat = 0 84 | pll_gpupat = -1002379674 85 | pll_videopat = 0 86 | pll_vepat = 0 87 | pll_hsicpat = 0 88 | pll_depat = 0 89 | pll_mipipat = 0 90 | pll_mipitun = -1979703288 91 | pll_mipibias = -133168128 92 | 93 | [pm_para] 94 | standby_mode = 1 95 | 96 | [dram_para] 97 | dram_clk = 432 98 | dram_type = 3 99 | dram_zq = 0x3bbb 100 | dram_odt_en = 1 101 | dram_para1 = 284296192 102 | dram_para2 = 4096 103 | dram_mr0 = 7280 104 | dram_mr1 = 64 105 | dram_mr2 = 24 106 | dram_mr3 = 0 107 | dram_tpr0 = 0x45a10c 108 | dram_tpr1 = 0x1c22109 109 | dram_tpr2 = 0x4c034 110 | dram_tpr3 = 0x0 111 | dram_tpr4 = 0x0 112 | dram_tpr5 = 0x0 113 | dram_tpr6 = 0x0 114 | dram_tpr7 = 0x0 115 | dram_tpr8 = 0x0 116 | dram_tpr9 = 0x0 117 | dram_tpr10 = 0x0 118 | dram_tpr11 = 0x0 119 | dram_tpr12 = 0xa8 120 | dram_tpr13 = 0x10901 121 | 122 | [pm_para] 123 | standby_mode = 1 124 | 125 | [wakeup_src_para] 126 | cpu_en = 0 127 | cpu_freq = 48 128 | pll_ratio = 273 129 | dram_selfresh_en = 1 130 | dram_freq = 36 131 | wakeup_src_wl = port:PL07<4><0> 132 | wakeup_src_bt = port:PL09<4><0> 133 | 134 | [twi0] 135 | twi_used = 1 136 | twi_scl = port:PH02<2> 137 | twi_sda = port:PH03<2> 138 | 139 | [twi1] 140 | twi_used = 1 141 | twi_scl = port:PH04<2> 142 | twi_sda = port:PH05<2> 143 | 144 | [twi2] 145 | twi_used = 1 146 | twi_scl = port:PE12<3> 147 | twi_sda = port:PE13<3> 148 | 149 | [uart0] 150 | uart_used = 1 151 | uart_port = 0 152 | uart_type = 2 153 | uart_tx = port:PF02<3><1> 154 | uart_rx = port:PF04<3><1> 155 | 156 | [uart1] 157 | uart_used = 1 158 | uart_type = 4 159 | uart_tx = port:PG06<2><1> 160 | uart_rx = port:PG07<2><1> 161 | uart_rts = port:PG08<2><1> 162 | uart_cts = port:PG09<2><1> 163 | 164 | [uart2] 165 | uart_used = 0 166 | uart_type = 4 167 | uart_tx = port:PB00<2><1> 168 | uart_rx = port:PB01<2><1> 169 | uart_rts = port:PB02<2><1> 170 | uart_cts = port:PB03<2><1> 171 | 172 | [uart3] 173 | uart_used = 0 174 | uart_type = 4 175 | uart_tx = port:PH06<3><1> 176 | uart_rx = port:PH07<3><1> 177 | uart_rts = port:PH08<3><1> 178 | uart_cts = port:PH09<3><1> 179 | 180 | [uart4] 181 | uart_used = 0 182 | uart_port = 4 183 | uart_type = 2 184 | uart_tx = port:PA04<2><1> 185 | uart_rx = port:PA05<2><1> 186 | uart_rts = port:PA06<2><1> 187 | uart_cts = port:PA07<2><1> 188 | 189 | [spi0] 190 | spi_used = 0 191 | spi_cs_bitmap = 1 192 | spi_mosi = port:PC00<3> 193 | spi_miso = port:PC01<3> 194 | spi_sclk = port:PC02<3> 195 | spi_cs0 = port:PC03<3><1> 196 | 197 | [spi1] 198 | spi_used = 0 199 | spi_cs_bitmap = 1 200 | spi_cs0 = port:PA00<2><1> 201 | spi_sclk = port:PA01<2> 202 | spi_mosi = port:PA02<2> 203 | spi_miso = port:PA03<2> 204 | 205 | [spi_devices] 206 | spi_dev_num = 0 207 | 208 | [spi_board0] 209 | modalias = "at25df641" 210 | max_speed_hz = 50000000 211 | bus_num = 0 212 | chip_select = 0 213 | mode = 0 214 | 215 | [ctp_para] 216 | ctp_used = 1 217 | ctp_name = "gt9271_1024_600" 218 | ctp_twi_id = 0 219 | ctp_twi_addr = 0x5d 220 | ctp_screen_max_x = 1024 221 | ctp_screen_max_y = 600 222 | ctp_revert_x_flag = 0 223 | ctp_revert_y_flag = 0 224 | ctp_exchange_x_y_flag = 0 225 | gt818_update_file_path = "/system/etc/GT818-Q8-A33-QCY_Config_20141208.cfg" 226 | gt911_update_file_path = "/system/etc/gt911_A23_N02_OPDTP_800_480_20130819.cfg" 227 | gt912_update_file_path = "/system/etc/gt912_A23_N02_OPDTP_800_480_20131029.cfg" 228 | gt927_update_file_path = 229 | gt928_update_file_path = 230 | ctp_int_port = port:PB05<4> 231 | ctp_wakeup = port:PH01<1><1> 232 | ctp_power_ldo = "axp22_ldoio1" 233 | ctp_power_ldo_vol = 3000 234 | ctp_power_io = 235 | 236 | [ctp_list_para] 237 | ctp_det_used = 1 238 | ft5x_ts = 1 239 | gt82x = 1 240 | gslX680 = 1 241 | gslX680new = 0 242 | gt9xx_ts = 1 243 | gt9xxf_ts = 0 244 | tu_ts = 0 245 | gt818_ts = 1 246 | zet622x = 1 247 | aw5306_ts = 1 248 | icn83xx_ts = 0 249 | 250 | [tkey_para] 251 | tkey_used = 0 252 | tkey_twi_id = 253 | tkey_twi_addr = 254 | tkey_int = 255 | 256 | [motor_para] 257 | motor_used = 0 258 | motor_shake = port:power3<1><1> 259 | motor_ldo = "" 260 | motor_ldo_voltage = 3300 261 | 262 | [ths_para] 263 | ths_used = 1 264 | ths_trip1_count = 3 265 | ths_trip1_0 = 75 266 | ths_trip1_1 = 90 267 | ths_trip1_2 = 110 268 | ths_trip1_0_min = 0 269 | ths_trip1_0_max = 1 270 | ths_trip1_1_min = 1 271 | ths_trip1_1_max = 3 272 | ths_trip1_2_min = 0 273 | ths_trip1_2_max = 0 274 | 275 | [cooler_table] 276 | cooler_count = 4 277 | cooler0 = "1344000 4 4294967295 0" 278 | cooler1 = "1200000 4 4294967295 0" 279 | cooler2 = "1008000 4 4294967295 0" 280 | cooler3 = "648000 4 4294967295 0" 281 | 282 | [nand0_para] 283 | nand_support_2ch = 0 284 | nand0_used = 1 285 | nand0_we = port:PC00<2><2> 286 | nand0_ale = port:PC01<2><2> 287 | nand0_cle = port:PC02<2><2> 288 | nand0_ce1 = port:PC03<2><2> 289 | nand0_ce0 = port:PC04<2><2> 290 | nand0_nre = port:PC05<2><2> 291 | nand0_rb0 = port:PC06<2><2> 292 | nand0_rb1 = port:PC07<2><2> 293 | nand0_d0 = port:PC08<2><2> 294 | nand0_d1 = port:PC09<2><2> 295 | nand0_d2 = port:PC10<2><2> 296 | nand0_d3 = port:PC11<2><2> 297 | nand0_d4 = port:PC12<2><2> 298 | nand0_d5 = port:PC13<2><2> 299 | nand0_d6 = port:PC14<2><2> 300 | nand0_d7 = port:PC15<2><2> 301 | nand0_ndqs = port:PC16<2><2> 302 | nand0_ce2 = port:PC17<2><2> 303 | nand0_ce3 = port:PC18<2><2> 304 | 305 | [disp_init] 306 | disp_init_enable = 1 307 | disp_mode = 0 308 | screen0_output_type = 1 309 | screen0_output_mode = 4 310 | screen1_output_type = 1 311 | screen1_output_mode = 4 312 | fb0_format = 10 313 | fb0_pixel_sequence = 0 314 | fb0_scaler_mode_enable = 0 315 | fb0_width = 0 316 | fb0_height = 0 317 | fb1_format = 10 318 | fb1_pixel_sequence = 0 319 | fb1_scaler_mode_enable = 0 320 | fb1_width = 0 321 | fb1_height = 0 322 | lcd0_backlight = 200 323 | lcd1_backlight = 200 324 | lcd0_bright = 50 325 | lcd0_contrast = 50 326 | lcd0_saturation = 57 327 | lcd0_hue = 50 328 | lcd1_bright = 50 329 | lcd1_contrast = 50 330 | lcd1_saturation = 57 331 | lcd1_hue = 50 332 | 333 | [lcd0_para] 334 | lcd_used = 1 335 | lcd_driver_name = "default_lcd" 336 | lcd_if = 3 337 | lcd_x = 1024 338 | lcd_y = 600 339 | lcd_width = 120 340 | lcd_height = 160 341 | lcd_dclk_freq = 56 342 | lcd_pwm_used = 1 343 | lcd_pwm_ch = 0 344 | lcd_pwm_freq = 12000 345 | lcd_pwm_pol = 1 346 | lcd_hbp = 160 347 | lcd_ht = 1344 348 | lcd_hspw = 20 349 | lcd_vbp = 25 350 | lcd_vt = 635 351 | lcd_vspw = 5 352 | lcd_lvds_if = 0 353 | lcd_lvds_colordepth = 0 354 | lcd_lvds_mode = 0 355 | lcd_frm = 1 356 | lcd_io_phase = 0 357 | lcd_gamma_en = 0 358 | lcd_bright_curve_en = 0 359 | lcd_cmap_en = 0 360 | deu_mode = 0 361 | lcdgamma4iep = 22 362 | smart_color = 90 363 | lcd_bl_en = port:PH06<1><0><1> 364 | lcd_power = "axp22_dc1sw" 365 | lcd_gpio_0 = port:PH07<1><0><1> 366 | lcd_gpio_1 = port:PL05<1><0><1> 367 | lcdd18 = port:PD18<3><0> 368 | lcdd19 = port:PD19<3><0> 369 | lcdd20 = port:PD20<3><0> 370 | lcdd21 = port:PD21<3><0> 371 | lcdd22 = port:PD22<3><0> 372 | lcdd23 = port:PD23<3><0> 373 | lcdclk = port:PD24<3><0> 374 | lcdde = port:PD25<3><0> 375 | lcdhsync = port:PD26<3><0> 376 | lcdvsync = port:PD27<3><0> 377 | 378 | [pwm0_para] 379 | pwm_used = 1 380 | pwm_positive = port:PH00<2><0> 381 | 382 | [pwm1_para] 383 | pwm_used = 0 384 | pwm_positive = port:PH01<2><0> 385 | 386 | [csi0] 387 | vip_used = 1 388 | vip_mode = 0 389 | vip_dev_qty = 2 390 | vip_define_sensor_list = 0 391 | vip_csi_pck = port:PE00<2> 392 | vip_csi_mck = port:PE01<2> 393 | vip_csi_hsync = port:PE02<2> 394 | vip_csi_vsync = port:PE03<2> 395 | vip_csi_d0 = port:PE04<2> 396 | vip_csi_d1 = port:PE05<2> 397 | vip_csi_d2 = port:PE06<2> 398 | vip_csi_d3 = port:PE07<2> 399 | vip_csi_d4 = port:PE08<2> 400 | vip_csi_d5 = port:PE09<2> 401 | vip_csi_d6 = port:PE10<2> 402 | vip_csi_d7 = port:PE11<2> 403 | vip_dev0_mname = "gc2155" 404 | vip_dev0_pos = "rear" 405 | vip_dev0_lane = 1 406 | vip_dev0_twi_id = 2 407 | vip_dev0_twi_addr = 120 408 | vip_dev0_isp_used = 0 409 | vip_dev0_fmt = 0 410 | vip_dev0_stby_mode = 0 411 | vip_dev0_vflip = 0 412 | vip_dev0_hflip = 0 413 | vip_dev0_iovdd = "axp22_dldo3" 414 | vip_dev0_iovdd_vol = 2800000 415 | vip_dev0_avdd = "axp22_ldoio0" 416 | vip_dev0_avdd_vol = 2800000 417 | vip_dev0_dvdd = "axp22_eldo2" 418 | vip_dev0_dvdd_vol = 1800000 419 | vip_dev0_afvdd = "axp22_eldo1" 420 | vip_dev0_afvdd_vol = 2800000 421 | vip_dev0_power_en = 422 | vip_dev0_reset = port:PE14<1><0> 423 | vip_dev0_pwdn = port:PE15<1><1> 424 | vip_dev0_flash_en = 425 | vip_dev0_flash_mode = 426 | vip_dev0_af_pwdn = 427 | vip_dev1_mname = "gc0329" 428 | vip_dev1_pos = "front" 429 | vip_dev1_lane = 1 430 | vip_dev1_twi_id = 2 431 | vip_dev1_twi_addr = 98 432 | vip_dev1_isp_used = 0 433 | vip_dev1_fmt = 0 434 | vip_dev1_stby_mode = 0 435 | vip_dev1_vflip = 0 436 | vip_dev1_hflip = 0 437 | vip_dev1_iovdd = "axp22_dldo3" 438 | vip_dev1_iovdd_vol = 2800000 439 | vip_dev1_avdd = "axp22_ldoio0" 440 | vip_dev1_avdd_vol = 2800000 441 | vip_dev1_dvdd = "axp22_eldo2" 442 | vip_dev1_dvdd_vol = 1800000 443 | vip_dev1_afvdd = "" 444 | vip_dev1_afvdd_vol = 445 | vip_dev1_power_en = 446 | vip_dev1_reset = port:PE16<1><0> 447 | vip_dev1_pwdn = port:PE17<1><1> 448 | vip_dev1_flash_en = 449 | vip_dev1_flash_mode = 450 | vip_dev1_af_pwdn = 451 | 452 | [camera_list_para] 453 | camera_list_para_used = 1 454 | gc0328 = 1 455 | gc0329 = 1 456 | gc2155 = 1 457 | gc0308 = 1 458 | gc2035 = 1 459 | ov5647 = 1 460 | 461 | [mmc0_para] 462 | sdc_used = 1 463 | sdc_detmode = 2 464 | sdc_buswidth = 4 465 | sdc_d1 = port:PF00<2><1><2> 466 | sdc_d0 = port:PF01<2><1><2> 467 | sdc_clk = port:PF02<2><1><2> 468 | sdc_cmd = port:PF03<2><1><2> 469 | sdc_d3 = port:PF04<2><1><2> 470 | sdc_d2 = port:PF05<2><1><2> 471 | sdc_det = port:PB04<4><1><2> 472 | sdc_power_supply = "axp22_dcdc1" 473 | sdc_use_wp = 0 474 | sdc_wp = 475 | sdc_isio = 0 476 | sdc_regulator = "none" 477 | 478 | [mmc1_para] 479 | sdc_used = 1 480 | sdc_detmode = 4 481 | sdc_buswidth = 4 482 | sdc_clk = port:PG00<2><1><1> 483 | sdc_cmd = port:PG01<2><1><1> 484 | sdc_d0 = port:PG02<2><1><1> 485 | sdc_d1 = port:PG03<2><1><1> 486 | sdc_d2 = port:PG04<2><1><1> 487 | sdc_d3 = port:PG05<2><1><1> 488 | sdc_det = 489 | sdc_use_wp = 0 490 | sdc_wp = 491 | sdc_isio = 1 492 | sdc_regulator = "none" 493 | 494 | [mmc2_para] 495 | sdc_used = 0 496 | sdc_detmode = 3 497 | sdc_buswidth = 8 498 | sdc_2xmode = 1 499 | sdc_clk = port:PC05<3><1><2> 500 | sdc_cmd = port:PC06<3><1><2> 501 | sdc_d0 = port:PC08<3><1><2> 502 | sdc_d1 = port:PC09<3><1><2> 503 | sdc_d2 = port:PC10<3><1><2> 504 | sdc_d3 = port:PC11<3><1><2> 505 | sdc_d4 = port:PC12<3><1><2> 506 | sdc_d5 = port:PC13<3><1><2> 507 | sdc_d6 = port:PC14<3><1><2> 508 | sdc_d7 = port:PC15<3><1><2> 509 | emmc_rst = port:PC16<3><1><2> 510 | sdc_power_supply = "axp22_dcdc1" 511 | sdc_det = 512 | sdc_use_wp = 0 513 | sdc_wp = 514 | sdc_isio = 0 515 | sdc_regulator = "none" 516 | 517 | [usbc0] 518 | usb_used = 1 519 | usb_port_type = 2 520 | usb_detect_type = 1 521 | usb_id_gpio = port:PH08<0><1> 522 | usb_det_vbus_gpio = "axp_ctrl" 523 | usb_drv_vbus_gpio = port:power4<1><0><0> 524 | usb_restrict_gpio = 525 | usb_host_init_state = 0 526 | usb_restric_flag = 0 527 | usb_restric_voltage = 3550000 528 | usb_restric_capacity = 5 529 | usb_regulator_io = "nocare" 530 | usb_regulator_vol = 0 531 | usb_regulator_id_vbus = "axp22_dcdc1" 532 | usb_regulator_id_vbus_vol = 3000000 533 | 534 | [usbc1] 535 | usb_used = 1 536 | usb_drv_vbus_gpio = 537 | usb_restrict_gpio = 538 | usb_host_init_state = 0 539 | usb_restric_flag = 0 540 | usb_regulator_io = "nocare" 541 | usb_regulator_vol = 0 542 | usb_not_suspend = 0 543 | 544 | [usb_feature] 545 | vendor_id = 7994 546 | mass_storage_id = 4096 547 | adb_id = 4097 548 | manufacturer_name = "ODYS" 549 | product_name = "Android" 550 | serial_number = "20150420" 551 | 552 | [msc_feature] 553 | vendor_name = "ODYS" 554 | product_name = "USB Flash Driver" 555 | release = 100 556 | luns = 2 557 | 558 | [serial_feature] 559 | serial_unique = 1 560 | 561 | [gsensor_para] 562 | gsensor_used = 1 563 | gsensor_twi_id = 1 564 | gsensor_twi_addr = 0x18 565 | gsensor_int1 = port:PB06<4><1> 566 | gsensor_int2 = 567 | 568 | [gsensor_list_para] 569 | gsensor_det_used = 1 570 | bma250 = 1 571 | stk831x = 0 572 | mma8452 = 1 573 | mma7660 = 1 574 | mma865x = 1 575 | mc32x0 = 0 576 | afa750 = 1 577 | lis3de_acc = 1 578 | lis3dh_acc = 1 579 | kxtik = 1 580 | dmard10 = 0 581 | dmard06 = 1 582 | mxc622x = 1 583 | fxos8700 = 1 584 | lsm303d = 1 585 | 586 | [rf_para] 587 | module_num = 5 588 | module_power1 = "axp22_dldo1" 589 | module_power1_vol = 3300000 590 | module_power2 = "axp22_dldo2" 591 | module_power2_vol = 3300000 592 | module_power3 = "" 593 | module_power3_vol = 594 | chip_en = 595 | lpo_use_apclk = "" 596 | 597 | [wifi_para] 598 | wifi_used = 1 599 | wifi_sdc_id = 1 600 | wifi_usbc_id = 1 601 | wifi_usbc_type = 1 602 | wl_reg_on = port:PL06<1><0> 603 | wl_host_wake = port:PL07<4><0> 604 | wl_host_wake_invert = 0 605 | efuse_map_name = "wifi_efuse_8723bs_forMB1019Q5.map" 606 | 607 | [bt_para] 608 | bt_used = 1 609 | bt_uart_id = 1 610 | bt_rst_n = port:PL08<1><0> 611 | bt_wake = port:PL10<1><0> 612 | bt_host_wake = port:PL09<4><0> 613 | bt_wake_invert = 0 614 | bt_host_wake_invert = 0 615 | ls_int = 616 | pcm_ch = 617 | 618 | [3g_para] 619 | 3g_used = 0 620 | 3g_usbc_num = 1 621 | 3g_uart_num = 2 622 | bb_name = "em66" 623 | bb_vbat = 624 | bb_on = 625 | bb_pwr_on = port:PL03<1><0> 626 | bb_wake = port:PL04<1><0> 627 | bb_rf_dis = port:PL11<1><0> 628 | bb_rst = port:PL05<1><0> 629 | bb_dldo = "axp22_aldo1" 630 | bb_dldo_min_uV = 2800000 631 | bb_dldo_max_uV = 2800000 632 | 633 | [gy_para] 634 | gy_used = 0 635 | gy_twi_id = 1 636 | gy_twi_addr = 106 637 | gy_int1 = 638 | gy_int2 = 639 | 640 | [gy_list_para] 641 | gy_det_used = 0 642 | l3gd20_gyr = 1 643 | 644 | [ls_para] 645 | ls_used = 0 646 | ls_twi_id = 1 647 | ls_twi_addr = 35 648 | ls_int = port:PB07<4><1> 649 | 650 | [ls_list_para] 651 | ls_det_used = 0 652 | ltr_501als = 1 653 | jsa1212 = 1 654 | 655 | [compass_para] 656 | compass_used = 0 657 | compass_twi_id = 1 658 | compass_twi_addr = 13 659 | compass_int = 660 | 661 | [i2s0] 662 | i2s0_used = 0 663 | i2s0_channel = 2 664 | i2s0_master = 4 665 | i2s0_select = 1 666 | audio_format = 1 667 | signal_inversion = 1 668 | over_sample_rate = 512 669 | sample_resolution = 16 670 | word_select_size = 32 671 | pcm_sync_period = 256 672 | msb_lsb_first = 0 673 | sign_extend = 0 674 | slot_index = 0 675 | slot_width = 16 676 | frame_width = 1 677 | tx_data_mode = 1 678 | rx_data_mode = 1 679 | i2s0_mclk = 680 | i2s0_bclk = port:PB04<2><1> 681 | i2s0_lrclk = port:PB05<2><1> 682 | i2s0_dout0 = port:PB06<2><1> 683 | i2s0_dout1 = 684 | i2s0_dout2 = 685 | i2s0_dout3 = 686 | i2s0_din = port:PB07<2><1> 687 | 688 | [i2s1] 689 | i2s1_used = 0 690 | i2s1_channel = 2 691 | i2s1_master = 4 692 | i2s1_select = 1 693 | audio_format = 1 694 | signal_inversion = 1 695 | over_sample_rate = 512 696 | sample_resolution = 16 697 | word_select_size = 32 698 | pcm_sync_period = 64 699 | msb_lsb_first = 0 700 | sign_extend = 0 701 | slot_index = 0 702 | slot_width = 16 703 | frame_width = 1 704 | tx_data_mode = 0 705 | rx_data_mode = 0 706 | i2s1_mclk = 707 | i2s1_bclk = port:PG11<2><1> 708 | i2s1_lrclk = port:PG10<2><1> 709 | i2s1_dout = port:PG12<2><1> 710 | i2s1_din = port:PG13<2><1> 711 | 712 | [audio0] 713 | audio_used = 1 714 | audio_hp_ldo = "none" 715 | headphone_vol = 59 716 | earpiece_vol = 62 717 | cap_vol = 5 718 | pa_single_vol = 62 719 | pa_double_used = 1 720 | pa_double_vol = 62 721 | headphone_direct_used = 0 722 | headset_mic_vol = 3 723 | main_mic_vol = 1 724 | audio_pa_ctrl = port:PH09<1><0> 725 | aif2_used = 0 726 | aif3_used = 0 727 | headphone_mute_used = 0 728 | DAC_VOL_CTRL_SPK = 41120 729 | DAC_VOL_CTRL_HEADPHONE = 41120 730 | agc_used = 0 731 | drc_used = 0 732 | 733 | [pmu1_para] 734 | pmu_used = 1 735 | pmu_twi_addr = 52 736 | pmu_twi_id = 1 737 | pmu_irq_id = 0 738 | pmu_battery_rdc = 100 739 | pmu_battery_cap = 0 740 | pmu_batdeten = 1 741 | pmu_chg_ic_temp = 0 742 | pmu_runtime_chgcur = 1350 743 | pmu_earlysuspend_chgcur = 1500 744 | pmu_suspend_chgcur = 1500 745 | pmu_shutdown_chgcur = 1500 746 | pmu_init_chgvol = 4200 747 | pmu_init_chgend_rate = 15 748 | pmu_init_chg_enabled = 1 749 | pmu_init_adc_freq = 800 750 | pmu_init_adcts_freq = 800 751 | pmu_init_chg_pretime = 70 752 | pmu_init_chg_csttime = 720 753 | pmu_batt_cap_correct = 1 754 | pmu_bat_regu_en = 0 755 | pmu_bat_para1 = 0 756 | pmu_bat_para2 = 0 757 | pmu_bat_para3 = 0 758 | pmu_bat_para4 = 0 759 | pmu_bat_para5 = 0 760 | pmu_bat_para6 = 0 761 | pmu_bat_para7 = 0 762 | pmu_bat_para8 = 0 763 | pmu_bat_para9 = 1 764 | pmu_bat_para10 = 2 765 | pmu_bat_para11 = 3 766 | pmu_bat_para12 = 5 767 | pmu_bat_para13 = 10 768 | pmu_bat_para14 = 16 769 | pmu_bat_para15 = 31 770 | pmu_bat_para16 = 43 771 | pmu_bat_para17 = 49 772 | pmu_bat_para18 = 53 773 | pmu_bat_para19 = 57 774 | pmu_bat_para20 = 60 775 | pmu_bat_para21 = 63 776 | pmu_bat_para22 = 66 777 | pmu_bat_para23 = 71 778 | pmu_bat_para24 = 77 779 | pmu_bat_para25 = 80 780 | pmu_bat_para26 = 84 781 | pmu_bat_para27 = 88 782 | pmu_bat_para28 = 92 783 | pmu_bat_para29 = 94 784 | pmu_bat_para30 = 96 785 | pmu_bat_para31 = 98 786 | pmu_bat_para32 = 100 787 | pmu_usbvol_limit = 0 788 | pmu_usbcur_limit = 0 789 | pmu_usbvol = 4000 790 | pmu_usbcur = 0 791 | pmu_usbvol_pc = 4400 792 | pmu_usbcur_pc = 500 793 | pmu_pwroff_vol = 3300 794 | pmu_pwron_vol = 2600 795 | pmu_pekoff_time = 6000 796 | pmu_pekoff_func = 0 797 | pmu_pekoff_en = 1 798 | pmu_peklong_time = 1500 799 | pmu_pekon_time = 1000 800 | pmu_pwrok_time = 64 801 | pmu_battery_warning_level1 = 5 802 | pmu_battery_warning_level2 = 0 803 | pmu_restvol_adjust_time = 60 804 | pmu_ocv_cou_adjust_time = 60 805 | pmu_chgled_func = 0 806 | pmu_chgled_type = 0 807 | pmu_vbusen_func = 1 808 | pmu_reset = 0 809 | pmu_IRQ_wakeup = 1 810 | pmu_hot_shutdowm = 1 811 | pmu_inshort = 0 812 | power_start = 0 813 | pmu_temp_enable = 1 814 | pmu_charge_ltf = 2261 815 | pmu_charge_htf = 388 816 | pmu_discharge_ltf = 3200 817 | pmu_discharge_htf = 237 818 | pmu_temp_para1 = 7466 819 | pmu_temp_para2 = 4480 820 | pmu_temp_para3 = 3518 821 | pmu_temp_para4 = 2786 822 | pmu_temp_para5 = 2223 823 | pmu_temp_para6 = 1788 824 | pmu_temp_para7 = 1448 825 | pmu_temp_para8 = 969 826 | pmu_temp_para9 = 664 827 | pmu_temp_para10 = 466 828 | pmu_temp_para11 = 393 829 | pmu_temp_para12 = 333 830 | pmu_temp_para13 = 283 831 | pmu_temp_para14 = 242 832 | pmu_temp_para15 = 179 833 | pmu_temp_para16 = 134 834 | 835 | [pmu2_para] 836 | pmu_used = 0 837 | pmu_twi_addr = 52 838 | pmu_twi_id = 1 839 | pmu_irq_id = 0 840 | 841 | [recovery_key] 842 | key_min = 4 843 | key_max = 40 844 | 845 | [dvfs_table] 846 | extremity_freq = 1344000000 847 | max_freq = 1200000000 848 | min_freq = 120000000 849 | LV_count = 8 850 | LV1_freq = 1536000000 851 | LV1_volt = 1500 852 | LV2_freq = 1344000000 853 | LV2_volt = 1460 854 | LV3_freq = 1200000000 855 | LV3_volt = 1320 856 | LV4_freq = 1008000000 857 | LV4_volt = 1200 858 | LV5_freq = 816000000 859 | LV5_volt = 1100 860 | LV6_freq = 648000000 861 | LV6_volt = 1040 862 | LV7_freq = 0 863 | LV7_volt = 1040 864 | LV8_freq = 0 865 | LV8_volt = 1040 866 | 867 | [Vdevice] 868 | Vdevice_used = 1 869 | Vdevice_0 = port:PA01<5><1><2> 870 | Vdevice_1 = port:PA02<5><1><2> 871 | 872 | [s_uart0] 873 | s_uart_used = 0 874 | s_uart_tx = port:PL02<2> 875 | s_uart_rx = port:PL03<2> 876 | 877 | [s_rsb0] 878 | s_rsb_used = 1 879 | s_rsb_sck = port:PL00<2><1><2> 880 | s_rsb_sda = port:PL01<2><1><2> 881 | 882 | [s_jtag0] 883 | s_jtag_used = 0 884 | s_jtag_tms = port:PL04<2><1><2> 885 | s_jtag_tck = port:PL05<2><1><2> 886 | s_jtag_tdo = port:PL06<2><1><2> 887 | s_jtag_tdi = port:PL07<2><1><2> 888 | 889 | [s_powchk] 890 | s_powchk_used = -2147483648 891 | s_power_reg = 32865 892 | s_system_power = 50 893 | 894 | [mali_para] 895 | mali_used = 1 896 | mali_clkdiv = 1 897 | mali_extreme_freq = 408 898 | mali_extreme_vol = 1100 899 | 900 | [dram_dvfs_table] 901 | LV_count = 3 902 | LV1_freq = 552000000 903 | LV1_volt = 1100 904 | LV2_freq = 360000000 905 | LV2_volt = 1100 906 | LV3_freq = 0 907 | LV3_volt = 1100 908 | 909 | [charging_type] 910 | charging_type = 1 911 | 912 | [dram_scene_table] 913 | LV_count = 2 914 | LV1_scene = 1 915 | LV1_freq = 360000000 916 | LV2_scene = 2 917 | LV2_freq = 240000000 918 | 919 | [leds_para] 920 | leds_used = 0 921 | red_led = port:power3<1><0> 922 | red_led_active_low = 1 923 | green_led = port:power1<1><0> 924 | green_led_active_low = 0 925 | blue_led = 926 | blue_led_active_low = 0 927 | 928 | -------------------------------------------------------------------------------- /odys-rise10quad/fex/u-boot.fex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hbiyik/hw_necromancer/5a957a5bcba6f513158159984601a02037ed925c/odys-rise10quad/fex/u-boot.fex -------------------------------------------------------------------------------- /odys-rise10quad/issues: -------------------------------------------------------------------------------- 1 | 1) u-boot 2022-10 stucks on sd card boot 2 | 2) wifi driver does not fully support nl80211 driver fully, force wpa_supplicant to use wext driver isntead -Dwext flag 3 | 3) lcd screen gamma is wrong 4 | 4) Nand flash partiniton table is missing 5 | 6 | memory dump script 7 | max=4065152 8 | i=0 9 | while [ $max -gt $i ] 10 | do 11 | busybox devmem $((64 * i)) 64 >> mem 12 | i=$((i+1)) 13 | done 14 | -------------------------------------------------------------------------------- /odys-rise10quad/mountremfs.sh: -------------------------------------------------------------------------------- 1 | sshfs -o allow_other root@192.168.2.218:/ remfs/ 2 | -------------------------------------------------------------------------------- /odys-rise10quad/u-boot/odys_rise10quad_defconfig: -------------------------------------------------------------------------------- 1 | CONFIG_SUPPORT_PASSING_ATAGS=y 2 | CONFIG_ARMV7_LPAE=n 3 | CONFIG_ARM=y 4 | CONFIG_ARCH_SUNXI=y 5 | CONFIG_DEFAULT_DEVICE_TREE="sun8i-odys-rise10quad" 6 | CONFIG_SPL=y 7 | CONFIG_MACH_SUN8I_A33=y 8 | # CONFIG_DRAM_CLK=432 9 | CONFIG_DRAM_CLK=360 10 | #CONFIG_DRAM_CLK=468 11 | #CONFIG_AXP_DCDC5_VOLT=1500 12 | #CONFIG_AXP_DCDC3_VOLT=1520 13 | #CONFIG_DRAM_TIMINGS_DDR3_1066F_1333H=y 14 | CONFIG_DRAM_ZQ=15291 15 | CONFIG_MMC0_CD_PIN="PB4" 16 | CONFIG_USB0_VBUS_PIN="AXP0-VBUS-ENABLE" 17 | CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT" 18 | CONFIG_USB0_ID_DET="PH8" 19 | CONFIG_AXP_GPIO=y 20 | # CONFIG_VIDEO_HDMI is not set 21 | CONFIG_VIDEO_LCD_MODE="x:1024,y:600,depth:24,pclk_khz:56000,le:140,ri:160,up:20,lo:10,hs:19,vs:4,sync:3,vmode:0" 22 | CONFIG_VIDEO_LCD_PANEL_LVDS=y 23 | CONFIG_VIDEO_LCD_IF_LVDS=y 24 | CONFIG_VIDEO_LCD_POWER="AXP0-0" 25 | CONFIG_VIDEO_LCD_BL_EN="PH6" 26 | CONFIG_VIDEO_LCD_BL_PWM="PH0" 27 | # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set 28 | CONFIG_SPL_STACK=0x8000 29 | CONFIG_SYS_PBSIZE=1024 30 | CONFIG_AXP_DLDO1_VOLT=3300 31 | CONFIG_CONS_INDEX=5 32 | CONFIG_USB_MUSB_HOST=y 33 | # CONFIG_MTD_RAW_NAND=y 34 | # CONFIG_NAND_SUNXI_SPL_ECC_STRENGTH=40 35 | # CONFIG_NAND_SUNXI_SPL_ECC_SIZE=1024 36 | # CONFIG_NAND_SUNXI_SPL_USABLE_PAGE_SIZE=8192 37 | # CONFIG_SYS_NAND_BLOCK_SIZE=0x200000 38 | # CONFIG_SYS_NAND_OOBSIZE=640 39 | # CONFIG_SYS_NAND_PAGE_SIZE=8832 40 | # CONFIG_SYS_NAND_MAX_CHIPS=2 41 | -------------------------------------------------------------------------------- /rock5b/archive/README.md: -------------------------------------------------------------------------------- 1 | stuff in this folder most likely does not work and not maintained. Only for archiving purposes 2 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/0001-widevine-support-for-arm.patch: -------------------------------------------------------------------------------- 1 | From c73efdeae5bd140073b8bb7f92a73e8993985160 Mon Sep 17 00:00:00 2001 2 | From: Kevin Mihelich 3 | Date: Thu, 18 Feb 2021 19:35:58 -0700 4 | Subject: [PATCH 1/3] widevine support for arm 5 | 6 | --- 7 | third_party/widevine/cdm/widevine.gni | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/third_party/widevine/cdm/widevine.gni b/third_party/widevine/cdm/widevine.gni 11 | index a0241bca3251c..c86ac17ed5d81 100644 12 | --- a/third_party/widevine/cdm/widevine.gni 13 | +++ b/third_party/widevine/cdm/widevine.gni 14 | @@ -26,7 +26,7 @@ if (is_chromeos && !is_chromeos_device) { 15 | library_widevine_cdm_available = 16 | (is_chromeos && 17 | (target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) || 18 | - (target_os == "linux" && target_cpu == "x64") || 19 | + (target_os == "linux" && (target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) || 20 | (target_os == "mac" && (target_cpu == "x64" || target_cpu == "arm64")) || 21 | (target_os == "win" && 22 | (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64")) 23 | -- 24 | 2.37.3 25 | 26 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/0002-Run-blink-bindings-generation-single-threaded.patch: -------------------------------------------------------------------------------- 1 | From 7d726d07b38e3f1e07f19e0eda575a3c64f82a41 Mon Sep 17 00:00:00 2001 2 | From: Kevin Mihelich 3 | Date: Tue, 2 Feb 2021 13:58:59 -0700 4 | Subject: [PATCH 2/3] Run blink bindings generation single threaded 5 | 6 | When not single threaded this process will eat all the RAM. 7 | --- 8 | third_party/blink/renderer/bindings/BUILD.gn | 1 + 9 | 1 file changed, 1 insertion(+) 10 | 11 | diff --git a/third_party/blink/renderer/bindings/BUILD.gn b/third_party/blink/renderer/bindings/BUILD.gn 12 | index 1288dfbf63614..613d299f85038 100644 13 | --- a/third_party/blink/renderer/bindings/BUILD.gn 14 | +++ b/third_party/blink/renderer/bindings/BUILD.gn 15 | @@ -148,6 +148,7 @@ template("generate_bindings") { 16 | outputs = invoker.outputs 17 | 18 | args = [ 19 | + "--single_process", 20 | "--web_idl_database", 21 | rebase_path(web_idl_database, root_build_dir), 22 | "--root_src_dir", 23 | -- 24 | 2.37.3 25 | 26 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/0003-Fix-eu-strip-build-for-newer-GCC.patch: -------------------------------------------------------------------------------- 1 | From e8804544a4b9ec764b1da9d6d39e1906f21cce11 Mon Sep 17 00:00:00 2001 2 | From: Kevin Mihelich 3 | Date: Wed, 21 Jul 2021 21:37:31 -0600 4 | Subject: [PATCH 3/3] Fix eu-strip build for newer GCC 5 | 6 | --- 7 | .../third_party/eu-strip/0001-gcc-fixes.patch | 656 ++++++++++++++++++ 8 | buildtools/third_party/eu-strip/build.sh | 3 +- 9 | 2 files changed, 658 insertions(+), 1 deletion(-) 10 | create mode 100644 buildtools/third_party/eu-strip/0001-gcc-fixes.patch 11 | 12 | diff --git a/buildtools/third_party/eu-strip/0001-gcc-fixes.patch b/buildtools/third_party/eu-strip/0001-gcc-fixes.patch 13 | new file mode 100644 14 | index 0000000000000..14f45f2662938 15 | --- /dev/null 16 | +++ b/buildtools/third_party/eu-strip/0001-gcc-fixes.patch 17 | @@ -0,0 +1,656 @@ 18 | +From 62350f68539357e15fe7f6e1ec35be36af63fe43 Mon Sep 17 00:00:00 2001 19 | +From: Kevin Mihelich 20 | +Date: Thu, 17 Feb 2022 19:58:58 -0700 21 | +Subject: [PATCH] gcc fixes 22 | + 23 | +--- 24 | + backends/Makefile.am | 8 ++--- 25 | + backends/i386_init.c | 1 - 26 | + backends/i386_syscall.c | 50 --------------------------- 27 | + backends/linux-core-note.c | 2 +- 28 | + backends/ppc64_init.c | 1 - 29 | + backends/ppc_init.c | 1 - 30 | + backends/ppc_syscall.c | 53 ----------------------------- 31 | + backends/x86_64_init.c | 1 - 32 | + backends/x86_64_syscall.c | 50 --------------------------- 33 | + libdw/dwarf_frame_register.c | 2 +- 34 | + libdw/libdw.h | 8 +++-- 35 | + libebl/Makefile.am | 2 +- 36 | + libebl/ebl-hooks.h | 4 --- 37 | + libebl/ebl_syscall_abi.c | 40 ---------------------- 38 | + libebl/eblopenbackend.c | 17 ---------- 39 | + libebl/libebl.h | 8 ----- 40 | + libelf/libelfP.h | 4 +-- 41 | + src/ar.c | 66 +++++++++++++++++++++++++----------- 42 | + src/elflint.c | 2 +- 43 | + tests/addrcfi.c | 2 +- 44 | + 20 files changed, 62 insertions(+), 260 deletions(-) 45 | + delete mode 100644 backends/i386_syscall.c 46 | + delete mode 100644 backends/ppc_syscall.c 47 | + delete mode 100644 backends/x86_64_syscall.c 48 | + delete mode 100644 libebl/ebl_syscall_abi.c 49 | + 50 | +diff --git a/backends/Makefile.am b/backends/Makefile.am 51 | +index 37dc2d20..b554894d 100644 52 | +--- a/backends/Makefile.am 53 | ++++ b/backends/Makefile.am 54 | +@@ -48,7 +48,7 @@ libdw = ../libdw/libdw.so 55 | + libeu = ../lib/libeu.a 56 | + 57 | + i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ 58 | +- i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ 59 | ++ i386_retval.c i386_regs.c i386_auxv.c \ 60 | + i386_initreg.c i386_unwind.c 61 | + cpu_i386 = ../libcpu/libcpu_i386.a 62 | + libebl_i386_pic_a_SOURCES = $(i386_SRCS) 63 | +@@ -59,7 +59,7 @@ libebl_sh_pic_a_SOURCES = $(sh_SRCS) 64 | + am_libebl_sh_pic_a_OBJECTS = $(sh_SRCS:.c=.os) 65 | + 66 | + x86_64_SRCS = x86_64_init.c x86_64_symbol.c x86_64_corenote.c x86_64_cfi.c \ 67 | +- x86_64_retval.c x86_64_regs.c i386_auxv.c x86_64_syscall.c \ 68 | ++ x86_64_retval.c x86_64_regs.c i386_auxv.c \ 69 | + x86_64_initreg.c x86_64_unwind.c x32_corenote.c 70 | + cpu_x86_64 = ../libcpu/libcpu_x86_64.a 71 | + libebl_x86_64_pic_a_SOURCES = $(x86_64_SRCS) 72 | +@@ -92,13 +92,13 @@ libebl_sparc_pic_a_SOURCES = $(sparc_SRCS) 73 | + am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os) 74 | + 75 | + ppc_SRCS = ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \ 76 | +- ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \ 77 | ++ ppc_corenote.c ppc_auxv.c ppc_attrs.c \ 78 | + ppc_cfi.c ppc_initreg.c 79 | + libebl_ppc_pic_a_SOURCES = $(ppc_SRCS) 80 | + am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os) 81 | + 82 | + ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c \ 83 | +- ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \ 84 | ++ ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c \ 85 | + ppc_cfi.c ppc_initreg.c ppc64_unwind.c ppc64_resolve_sym.c 86 | + libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS) 87 | + am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os) 88 | +diff --git a/backends/i386_init.c b/backends/i386_init.c 89 | +index fc1587a9..847a11c0 100644 90 | +--- a/backends/i386_init.c 91 | ++++ b/backends/i386_init.c 92 | +@@ -58,7 +58,6 @@ i386_init (Elf *elf __attribute__ ((unused)), 93 | + HOOK (eh, debugscn_p); 94 | + HOOK (eh, return_value_location); 95 | + HOOK (eh, register_info); 96 | +- HOOK (eh, syscall_abi); 97 | + HOOK (eh, auxv_info); 98 | + HOOK (eh, disasm); 99 | + HOOK (eh, abi_cfi); 100 | +diff --git a/backends/i386_syscall.c b/backends/i386_syscall.c 101 | +deleted file mode 100644 102 | +index 535dcd86..00000000 103 | +--- a/backends/i386_syscall.c 104 | ++++ /dev/null 105 | +@@ -1,50 +0,0 @@ 106 | +-/* Linux/i386 system call ABI in DWARF register numbers. 107 | +- Copyright (C) 2008 Red Hat, Inc. 108 | +- This file is part of elfutils. 109 | +- 110 | +- This file is free software; you can redistribute it and/or modify 111 | +- it under the terms of either 112 | +- 113 | +- * the GNU Lesser General Public License as published by the Free 114 | +- Software Foundation; either version 3 of the License, or (at 115 | +- your option) any later version 116 | +- 117 | +- or 118 | +- 119 | +- * the GNU General Public License as published by the Free 120 | +- Software Foundation; either version 2 of the License, or (at 121 | +- your option) any later version 122 | +- 123 | +- or both in parallel, as here. 124 | +- 125 | +- elfutils is distributed in the hope that it will be useful, but 126 | +- WITHOUT ANY WARRANTY; without even the implied warranty of 127 | +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 128 | +- General Public License for more details. 129 | +- 130 | +- You should have received copies of the GNU General Public License and 131 | +- the GNU Lesser General Public License along with this program. If 132 | +- not, see . */ 133 | +- 134 | +-#ifdef HAVE_CONFIG_H 135 | +-# include 136 | +-#endif 137 | +- 138 | +-#define BACKEND i386_ 139 | +-#include "libebl_CPU.h" 140 | +- 141 | +-int 142 | +-i386_syscall_abi (Ebl *ebl __attribute__ ((unused)), 143 | +- int *sp, int *pc, int *callno, int args[6]) 144 | +-{ 145 | +- *sp = 4; /* %esp */ 146 | +- *pc = 8; /* %eip */ 147 | +- *callno = 0; /* %eax */ 148 | +- args[0] = 3; /* %ebx */ 149 | +- args[1] = 1; /* %ecx */ 150 | +- args[2] = 2; /* %edx */ 151 | +- args[3] = 6; /* %esi */ 152 | +- args[4] = 7; /* %edi */ 153 | +- args[5] = 5; /* %ebp */ 154 | +- return 0; 155 | +-} 156 | +diff --git a/backends/linux-core-note.c b/backends/linux-core-note.c 157 | +index 67638d70..08282ba4 100644 158 | +--- a/backends/linux-core-note.c 159 | ++++ b/backends/linux-core-note.c 160 | +@@ -111,7 +111,7 @@ struct EBLHOOK(prstatus) 161 | + FIELD (INT, pr_fpvalid); 162 | + } 163 | + #ifdef ALIGN_PRSTATUS 164 | +- __attribute__ ((packed, aligned (ALIGN_PRSTATUS))) 165 | ++ attribute_packed __attribute__ ((aligned (ALIGN_PRSTATUS))) 166 | + #endif 167 | + ; 168 | + 169 | +diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c 170 | +index e5670338..ec36498c 100644 171 | +--- a/backends/ppc64_init.c 172 | ++++ b/backends/ppc64_init.c 173 | +@@ -64,7 +64,6 @@ ppc64_init (Elf *elf __attribute__ ((unused)), 174 | + HOOK (eh, bss_plt_p); 175 | + HOOK (eh, return_value_location); 176 | + HOOK (eh, register_info); 177 | +- HOOK (eh, syscall_abi); 178 | + HOOK (eh, core_note); 179 | + HOOK (eh, auxv_info); 180 | + HOOK (eh, check_object_attribute); 181 | +diff --git a/backends/ppc_init.c b/backends/ppc_init.c 182 | +index aea9f2d7..ab0a00c7 100644 183 | +--- a/backends/ppc_init.c 184 | ++++ b/backends/ppc_init.c 185 | +@@ -60,7 +60,6 @@ ppc_init (Elf *elf __attribute__ ((unused)), 186 | + HOOK (eh, bss_plt_p); 187 | + HOOK (eh, return_value_location); 188 | + HOOK (eh, register_info); 189 | +- HOOK (eh, syscall_abi); 190 | + HOOK (eh, core_note); 191 | + HOOK (eh, auxv_info); 192 | + HOOK (eh, check_object_attribute); 193 | +diff --git a/backends/ppc_syscall.c b/backends/ppc_syscall.c 194 | +deleted file mode 100644 195 | +index b1b9c52b..00000000 196 | +--- a/backends/ppc_syscall.c 197 | ++++ /dev/null 198 | +@@ -1,53 +0,0 @@ 199 | +-/* Linux/PPC system call ABI in DWARF register numbers. 200 | +- Copyright (C) 2008 Red Hat, Inc. 201 | +- This file is part of elfutils. 202 | +- 203 | +- This file is free software; you can redistribute it and/or modify 204 | +- it under the terms of either 205 | +- 206 | +- * the GNU Lesser General Public License as published by the Free 207 | +- Software Foundation; either version 3 of the License, or (at 208 | +- your option) any later version 209 | +- 210 | +- or 211 | +- 212 | +- * the GNU General Public License as published by the Free 213 | +- Software Foundation; either version 2 of the License, or (at 214 | +- your option) any later version 215 | +- 216 | +- or both in parallel, as here. 217 | +- 218 | +- elfutils is distributed in the hope that it will be useful, but 219 | +- WITHOUT ANY WARRANTY; without even the implied warranty of 220 | +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 221 | +- General Public License for more details. 222 | +- 223 | +- You should have received copies of the GNU General Public License and 224 | +- the GNU Lesser General Public License along with this program. If 225 | +- not, see . */ 226 | +- 227 | +-#ifdef HAVE_CONFIG_H 228 | +-# include 229 | +-#endif 230 | +- 231 | +-#define BACKEND ppc_ 232 | +-#include "libebl_CPU.h" 233 | +- 234 | +-int 235 | +-ppc_syscall_abi (Ebl *ebl __attribute__ ((unused)), 236 | +- int *sp, int *pc, int *callno, int args[6]) 237 | +-{ 238 | +- *sp = 1; 239 | +- *pc = -1; 240 | +- *callno = 0; 241 | +- args[0] = 3; 242 | +- args[1] = 4; 243 | +- args[2] = 5; 244 | +- args[3] = 6; 245 | +- args[4] = 7; 246 | +- args[5] = 8; 247 | +- return 0; 248 | +-} 249 | +- 250 | +-__typeof (ppc_syscall_abi) 251 | +-ppc64_syscall_abi __attribute__ ((alias ("ppc_syscall_abi"))); 252 | +diff --git a/backends/x86_64_init.c b/backends/x86_64_init.c 253 | +index adfa4791..a3838b69 100644 254 | +--- a/backends/x86_64_init.c 255 | ++++ b/backends/x86_64_init.c 256 | +@@ -61,7 +61,6 @@ x86_64_init (Elf *elf __attribute__ ((unused)), 257 | + HOOK (eh, core_note); 258 | + HOOK (eh, return_value_location); 259 | + HOOK (eh, register_info); 260 | +- HOOK (eh, syscall_abi); 261 | + HOOK (eh, auxv_info); 262 | + HOOK (eh, disasm); 263 | + HOOK (eh, abi_cfi); 264 | +diff --git a/backends/x86_64_syscall.c b/backends/x86_64_syscall.c 265 | +deleted file mode 100644 266 | +index 0deb8bad..00000000 267 | +--- a/backends/x86_64_syscall.c 268 | ++++ /dev/null 269 | +@@ -1,50 +0,0 @@ 270 | +-/* Linux/x86-64 system call ABI in DWARF register numbers. 271 | +- Copyright (C) 2008 Red Hat, Inc. 272 | +- This file is part of elfutils. 273 | +- 274 | +- This file is free software; you can redistribute it and/or modify 275 | +- it under the terms of either 276 | +- 277 | +- * the GNU Lesser General Public License as published by the Free 278 | +- Software Foundation; either version 3 of the License, or (at 279 | +- your option) any later version 280 | +- 281 | +- or 282 | +- 283 | +- * the GNU General Public License as published by the Free 284 | +- Software Foundation; either version 2 of the License, or (at 285 | +- your option) any later version 286 | +- 287 | +- or both in parallel, as here. 288 | +- 289 | +- elfutils is distributed in the hope that it will be useful, but 290 | +- WITHOUT ANY WARRANTY; without even the implied warranty of 291 | +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 292 | +- General Public License for more details. 293 | +- 294 | +- You should have received copies of the GNU General Public License and 295 | +- the GNU Lesser General Public License along with this program. If 296 | +- not, see . */ 297 | +- 298 | +-#ifdef HAVE_CONFIG_H 299 | +-# include 300 | +-#endif 301 | +- 302 | +-#define BACKEND x86_64_ 303 | +-#include "libebl_CPU.h" 304 | +- 305 | +-int 306 | +-x86_64_syscall_abi (Ebl *ebl __attribute__ ((unused)), 307 | +- int *sp, int *pc, int *callno, int args[6]) 308 | +-{ 309 | +- *sp = 7; /* %rsp */ 310 | +- *pc = 16; /* %rip */ 311 | +- *callno = 0; /* %rax */ 312 | +- args[0] = 5; /* %rdi */ 313 | +- args[1] = 4; /* %rsi */ 314 | +- args[2] = 1; /* %rdx */ 315 | +- args[3] = 10; /* %r10 */ 316 | +- args[4] = 8; /* %r8 */ 317 | +- args[5] = 9; /* %r9 */ 318 | +- return 0; 319 | +-} 320 | +diff --git a/libdw/dwarf_frame_register.c b/libdw/dwarf_frame_register.c 321 | +index 37e8e917..5b5b1e33 100644 322 | +--- a/libdw/dwarf_frame_register.c 323 | ++++ b/libdw/dwarf_frame_register.c 324 | +@@ -34,7 +34,7 @@ 325 | + #include 326 | + 327 | + int 328 | +-dwarf_frame_register (Dwarf_Frame *fs, int regno, Dwarf_Op *ops_mem, 329 | ++dwarf_frame_register (Dwarf_Frame *fs, int regno, Dwarf_Op ops_mem[3], 330 | + Dwarf_Op **ops, size_t *nops) 331 | + { 332 | + /* Maybe there was a previous error. */ 333 | +diff --git a/libdw/libdw.h b/libdw/libdw.h 334 | +index 63a38ff9..75fcbd9d 100644 335 | +--- a/libdw/libdw.h 336 | ++++ b/libdw/libdw.h 337 | +@@ -977,9 +977,11 @@ extern int dwarf_frame_cfa (Dwarf_Frame *frame, Dwarf_Op **ops, size_t *nops) 338 | + caller's REGNO is "same_value", i.e. this frame did not change it; 339 | + ask the caller frame where to find it. 340 | + 341 | +- For common simple expressions *OPS is OPS_MEM. For arbitrary DWARF 342 | +- expressions in the CFI, *OPS is an internal pointer that can be used as 343 | +- long as the Dwarf_CFI used to create FRAME remains alive. */ 344 | ++ For common simple expressions *OPS is OPS_MEM (which is a caller 345 | ++ owned array for at least 3 Dwarf_Ops). For arbitrary DWARF 346 | ++ expressions in the CFI, *OPS is an internal pointer that can be 347 | ++ used as long as the Dwarf_CFI used to create FRAME remains 348 | ++ alive. */ 349 | + extern int dwarf_frame_register (Dwarf_Frame *frame, int regno, 350 | + Dwarf_Op ops_mem[3], 351 | + Dwarf_Op **ops, size_t *nops) 352 | +diff --git a/libebl/Makefile.am b/libebl/Makefile.am 353 | +index 2491df80..b58ec11a 100644 354 | +--- a/libebl/Makefile.am 355 | ++++ b/libebl/Makefile.am 356 | +@@ -51,7 +51,7 @@ gen_SOURCES = eblopenbackend.c eblclosebackend.c \ 357 | + ebl_check_special_symbol.c eblbsspltp.c eblretval.c \ 358 | + eblreginfo.c eblnonerelocp.c eblrelativerelocp.c \ 359 | + eblsysvhashentrysize.c eblauxvinfo.c eblcheckobjattr.c \ 360 | +- ebl_check_special_section.c ebl_syscall_abi.c eblabicfi.c \ 361 | ++ ebl_check_special_section.c eblabicfi.c \ 362 | + eblstother.c eblinitreg.c ebldwarftoregno.c eblnormalizepc.c \ 363 | + eblunwind.c eblresolvesym.c eblcheckreloctargettype.c \ 364 | + ebl_data_marker_symbol.c 365 | +diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h 366 | +index f3a0e64a..5c85289d 100644 367 | +--- a/libebl/ebl-hooks.h 368 | ++++ b/libebl/ebl-hooks.h 369 | +@@ -142,10 +142,6 @@ ssize_t EBLHOOK(register_info) (Ebl *ebl, 370 | + const char **prefix, const char **setname, 371 | + int *bits, int *type); 372 | + 373 | +-/* Return system call ABI registers. */ 374 | +-int EBLHOOK(syscall_abi) (Ebl *ebl, int *sp, int *pc, 375 | +- int *callno, int args[6]); 376 | +- 377 | + /* Disassembler function. */ 378 | + int EBLHOOK(disasm) (Ebl *ebl, const uint8_t **startp, const uint8_t *end, 379 | + GElf_Addr addr, const char *fmt, DisasmOutputCB_t outcb, 380 | +diff --git a/libebl/ebl_syscall_abi.c b/libebl/ebl_syscall_abi.c 381 | +deleted file mode 100644 382 | +index a25369d2..00000000 383 | +--- a/libebl/ebl_syscall_abi.c 384 | ++++ /dev/null 385 | +@@ -1,40 +0,0 @@ 386 | +-/* Return system call ABI mapped to DWARF register numbers. 387 | +- Copyright (C) 2008 Red Hat, Inc. 388 | +- This file is part of elfutils. 389 | +- 390 | +- This file is free software; you can redistribute it and/or modify 391 | +- it under the terms of either 392 | +- 393 | +- * the GNU Lesser General Public License as published by the Free 394 | +- Software Foundation; either version 3 of the License, or (at 395 | +- your option) any later version 396 | +- 397 | +- or 398 | +- 399 | +- * the GNU General Public License as published by the Free 400 | +- Software Foundation; either version 2 of the License, or (at 401 | +- your option) any later version 402 | +- 403 | +- or both in parallel, as here. 404 | +- 405 | +- elfutils is distributed in the hope that it will be useful, but 406 | +- WITHOUT ANY WARRANTY; without even the implied warranty of 407 | +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 408 | +- General Public License for more details. 409 | +- 410 | +- You should have received copies of the GNU General Public License and 411 | +- the GNU Lesser General Public License along with this program. If 412 | +- not, see . */ 413 | +- 414 | +-#ifdef HAVE_CONFIG_H 415 | +-# include 416 | +-#endif 417 | +- 418 | +-#include 419 | +- 420 | +- 421 | +-int 422 | +-ebl_syscall_abi (Ebl *ebl, int *sp, int *pc, int *callno, int *args) 423 | +-{ 424 | +- return ebl != NULL ? ebl->syscall_abi (ebl, sp, pc, callno, args) : -1; 425 | +-} 426 | +diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c 427 | +index 1f814776..fbd78e8a 100644 428 | +--- a/libebl/eblopenbackend.c 429 | ++++ b/libebl/eblopenbackend.c 430 | +@@ -196,8 +196,6 @@ static ssize_t default_register_info (Ebl *ebl, 431 | + const char **prefix, 432 | + const char **setname, 433 | + int *bits, int *type); 434 | +-static int default_syscall_abi (Ebl *ebl, int *sp, int *pc, 435 | +- int *callno, int args[6]); 436 | + static bool default_check_object_attribute (Ebl *ebl, const char *vendor, 437 | + int tag, uint64_t value, 438 | + const char **tag_name, 439 | +@@ -241,7 +239,6 @@ fill_defaults (Ebl *result) 440 | + result->bss_plt_p = default_bss_plt_p; 441 | + result->return_value_location = default_return_value_location; 442 | + result->register_info = default_register_info; 443 | +- result->syscall_abi = default_syscall_abi; 444 | + result->check_object_attribute = default_check_object_attribute; 445 | + result->check_reloc_target_type = default_check_reloc_target_type; 446 | + result->disasm = NULL; 447 | +@@ -717,20 +714,6 @@ default_register_info (Ebl *ebl __attribute__ ((unused)), 448 | + return snprintf (name, namelen, "reg%d", regno); 449 | + } 450 | + 451 | +-static int 452 | +-default_syscall_abi (Ebl *ebl __attribute__ ((unused)), 453 | +- int *sp, int *pc, int *callno, int args[6]) 454 | +-{ 455 | +- *sp = *pc = *callno = -1; 456 | +- args[0] = -1; 457 | +- args[1] = -1; 458 | +- args[2] = -1; 459 | +- args[3] = -1; 460 | +- args[4] = -1; 461 | +- args[5] = -1; 462 | +- return -1; 463 | +-} 464 | +- 465 | + static bool 466 | + default_check_object_attribute (Ebl *ebl __attribute__ ((unused)), 467 | + const char *vendor __attribute__ ((unused)), 468 | +diff --git a/libebl/libebl.h b/libebl/libebl.h 469 | +index 882bdb99..5200b934 100644 470 | +--- a/libebl/libebl.h 471 | ++++ b/libebl/libebl.h 472 | +@@ -243,14 +243,6 @@ extern ssize_t ebl_register_info (Ebl *ebl, 473 | + const char **prefix, const char **setname, 474 | + int *bits, int *type); 475 | + 476 | +-/* Fill in the DWARF register numbers for the registers used in system calls. 477 | +- The SP and PC are what kernel reports call the user stack pointer and PC. 478 | +- The CALLNO and ARGS are the system call number and incoming arguments. 479 | +- Each of these is filled with the DWARF register number corresponding, 480 | +- or -1 if there is none. Returns zero when the information is available. */ 481 | +-extern int ebl_syscall_abi (Ebl *ebl, int *sp, int *pc, 482 | +- int *callno, int args[6]); 483 | +- 484 | + /* Supply the ABI-specified state of DWARF CFI before CIE initial programs. 485 | + 486 | + The DWARF 3.0 spec says that the default initial states of all registers 487 | +diff --git a/libelf/libelfP.h b/libelf/libelfP.h 488 | +index 7ee6625a..4007301b 100644 489 | +--- a/libelf/libelfP.h 490 | ++++ b/libelf/libelfP.h 491 | +@@ -463,9 +463,9 @@ extern Elf_Type __libelf_data_type (Elf *elf, int sh_type) internal_function; 492 | + These functions cannot be marked internal since they are aliases 493 | + of the export elfXX_fsize functions.*/ 494 | + extern size_t __elf32_msize (Elf_Type __type, size_t __count, 495 | +- unsigned int __version); 496 | ++ unsigned int __version) __const_attribute__; 497 | + extern size_t __elf64_msize (Elf_Type __type, size_t __count, 498 | +- unsigned int __version); 499 | ++ unsigned int __version) __const_attribute__; 500 | + 501 | + 502 | + /* Create Elf descriptor from memory image. */ 503 | +diff --git a/src/ar.c b/src/ar.c 504 | +index ec32cee5..818115bd 100644 505 | +--- a/src/ar.c 506 | ++++ b/src/ar.c 507 | +@@ -1,5 +1,5 @@ 508 | + /* Create, modify, and extract from archives. 509 | +- Copyright (C) 2005-2012, 2016 Red Hat, Inc. 510 | ++ Copyright (C) 2005-2012, 2016, 2017 Red Hat, Inc. 511 | + This file is part of elfutils. 512 | + Written by Ulrich Drepper , 2005. 513 | + 514 | +@@ -442,7 +442,7 @@ static int 515 | + do_oper_extract (int oper, const char *arfname, char **argv, int argc, 516 | + long int instance) 517 | + { 518 | +- bool found[argc]; 519 | ++ bool found[argc > 0 ? argc : 1]; 520 | + memset (found, '\0', sizeof (found)); 521 | + 522 | + size_t name_max = 0; 523 | +@@ -1056,13 +1056,11 @@ do_oper_delete (const char *arfname, char **argv, int argc, 524 | + goto nonew_unlink; 525 | + 526 | + errout: 527 | +-#ifdef DEBUG 528 | + elf_end (elf); 529 | + 530 | + arlib_fini (); 531 | + 532 | + close (fd); 533 | +-#endif 534 | + 535 | + not_found (argc, argv, found); 536 | + 537 | +@@ -1070,12 +1068,18 @@ do_oper_delete (const char *arfname, char **argv, int argc, 538 | + } 539 | + 540 | + 541 | +-static void 542 | ++/* Prints the given value in the given buffer without a trailing zero char. 543 | ++ Returns false if the given value doesn't fit in the given buffer. */ 544 | ++static bool 545 | + no0print (bool ofmt, char *buf, int bufsize, long int val) 546 | + { 547 | + char tmpbuf[bufsize + 1]; 548 | +- snprintf (tmpbuf, sizeof (tmpbuf), ofmt ? "%-*lo" : "%-*ld", bufsize, val); 549 | ++ int ret = snprintf (tmpbuf, sizeof (tmpbuf), ofmt ? "%-*lo" : "%-*ld", 550 | ++ bufsize, val); 551 | ++ if (ret >= (int) sizeof (tmpbuf)) 552 | ++ return false; 553 | + memcpy (buf, tmpbuf, bufsize); 554 | ++ return true; 555 | + } 556 | + 557 | + 558 | +@@ -1084,7 +1088,7 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc, 559 | + const char *member) 560 | + { 561 | + int status = 0; 562 | +- Elf *elf; 563 | ++ Elf *elf = NULL; 564 | + struct stat st; 565 | + int fd = open_archive (arfname, O_RDONLY, 0, &elf, &st, oper != oper_move); 566 | + 567 | +@@ -1303,13 +1307,11 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc, 568 | + 569 | + if (status != 0) 570 | + { 571 | +-#ifdef DEBUG 572 | + elf_end (elf); 573 | + 574 | + arlib_fini (); 575 | + 576 | + close (fd); 577 | +-#endif 578 | + 579 | + return status; 580 | + } 581 | +@@ -1463,14 +1465,36 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc, 582 | + memcpy (arhdr.ar_name, tmpbuf, sizeof (arhdr.ar_name)); 583 | + } 584 | + 585 | +- no0print (false, arhdr.ar_date, sizeof (arhdr.ar_date), 586 | +- all->sec); 587 | +- no0print (false, arhdr.ar_uid, sizeof (arhdr.ar_uid), all->uid); 588 | +- no0print (false, arhdr.ar_gid, sizeof (arhdr.ar_gid), all->gid); 589 | +- no0print (true, arhdr.ar_mode, sizeof (arhdr.ar_mode), 590 | +- all->mode); 591 | +- no0print (false, arhdr.ar_size, sizeof (arhdr.ar_size), 592 | +- all->size); 593 | ++ if (! no0print (false, arhdr.ar_date, sizeof (arhdr.ar_date), 594 | ++ all->sec)) 595 | ++ { 596 | ++ error (0, errno, gettext ("cannot represent ar_date")); 597 | ++ goto nonew_unlink; 598 | ++ } 599 | ++ if (! no0print (false, arhdr.ar_uid, sizeof (arhdr.ar_uid), 600 | ++ all->uid)) 601 | ++ { 602 | ++ error (0, errno, gettext ("cannot represent ar_uid")); 603 | ++ goto nonew_unlink; 604 | ++ } 605 | ++ if (! no0print (false, arhdr.ar_gid, sizeof (arhdr.ar_gid), 606 | ++ all->gid)) 607 | ++ { 608 | ++ error (0, errno, gettext ("cannot represent ar_gid")); 609 | ++ goto nonew_unlink; 610 | ++ } 611 | ++ if (! no0print (true, arhdr.ar_mode, sizeof (arhdr.ar_mode), 612 | ++ all->mode)) 613 | ++ { 614 | ++ error (0, errno, gettext ("cannot represent ar_mode")); 615 | ++ goto nonew_unlink; 616 | ++ } 617 | ++ if (! no0print (false, arhdr.ar_size, sizeof (arhdr.ar_size), 618 | ++ all->size)) 619 | ++ { 620 | ++ error (0, errno, gettext ("cannot represent ar_size")); 621 | ++ goto nonew_unlink; 622 | ++ } 623 | + memcpy (arhdr.ar_fmag, ARFMAG, sizeof (arhdr.ar_fmag)); 624 | + 625 | + if (unlikely (write_retry (newfd, &arhdr, sizeof (arhdr)) 626 | +@@ -1514,13 +1538,15 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc, 627 | + goto nonew_unlink; 628 | + 629 | + errout: 630 | +-#ifdef DEBUG 631 | ++ for (int cnt = 0; cnt < argc; ++cnt) 632 | ++ elf_end (found[cnt]->elf); 633 | ++ 634 | + elf_end (elf); 635 | + 636 | + arlib_fini (); 637 | + 638 | +- close (fd); 639 | +-#endif 640 | ++ if (fd != -1) 641 | ++ close (fd); 642 | + 643 | + return status; 644 | + } 645 | +diff --git a/src/elflint.c b/src/elflint.c 646 | +index 51e53c23..f3a85c3c 100644 647 | +--- a/src/elflint.c 648 | ++++ b/src/elflint.c 649 | +@@ -4073,7 +4073,7 @@ section [%2zu] '%s' has type NOBITS but is read from the file in segment of prog 650 | + bad = (databits == NULL 651 | + || databits->d_size != shdr->sh_size); 652 | + for (size_t idx = 0; 653 | +- idx < databits->d_size && ! bad; 654 | ++ ! bad && idx < databits->d_size; 655 | + idx++) 656 | + bad = ((char *) databits->d_buf)[idx] != 0; 657 | + 658 | +diff --git a/tests/addrcfi.c b/tests/addrcfi.c 659 | +index 589b8513..2b7d7bd0 100644 660 | +--- a/tests/addrcfi.c 661 | ++++ b/tests/addrcfi.c 662 | +@@ -92,7 +92,7 @@ print_register (void *arg, 663 | + 664 | + printf ("\t%s reg%u (%s%s): ", setname, regno, prefix, regname); 665 | + 666 | +- Dwarf_Op ops_mem[2]; 667 | ++ Dwarf_Op ops_mem[3]; 668 | + Dwarf_Op *ops; 669 | + size_t nops; 670 | + int result = dwarf_frame_register (stuff->frame, regno, ops_mem, &ops, &nops); 671 | +-- 672 | +2.36.1 673 | + 674 | diff --git a/buildtools/third_party/eu-strip/build.sh b/buildtools/third_party/eu-strip/build.sh 675 | index 86f2b67f6bbd1..c073e9a15827a 100755 676 | --- a/buildtools/third_party/eu-strip/build.sh 677 | +++ b/buildtools/third_party/eu-strip/build.sh 678 | @@ -1,7 +1,7 @@ 679 | #!/bin/sh -xe 680 | 681 | rm -rf elfutils 682 | -git clone git://sourceware.org/git/elfutils.git 683 | +git clone https://sourceware.org/git/elfutils.git 684 | cd elfutils 685 | git checkout elfutils-0.170 686 | autoheader 687 | @@ -9,6 +9,7 @@ aclocal 688 | autoconf 689 | automake --add-missing 690 | patch -p1 < ../fix-elf-size.patch 691 | +patch -p1 < ../0001-gcc-fixes.patch 692 | mkdir build 693 | cd build 694 | ../configure --enable-maintainer-mode 695 | -- 696 | 2.37.3 697 | 698 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Evangelos Foutras 2 | # Contributor: Pierre Schmitz 3 | # Contributor: Jan "heftig" Steffens 4 | # Contributor: Daniel J Griffiths 5 | 6 | # ALARM: Kevin Mihelich 7 | # - makeflags to -j4 on v7, RAM constraints 8 | # - let build set march on AArch64 9 | # - is_cfi=false, use_gold=false 10 | # - clang_use_default_sample_profile=false, AFDO breaks distcc 11 | # - use_allocator="none", tcmalloc breaks ARM 12 | # - patch and rebuild bundled eu-strip 13 | # - disable LTO on v7 14 | 15 | highmem=1 16 | 17 | pkgname=chromium-ffmpeg 18 | pkgver=109.0.5414.74 19 | pkgrel=1 20 | _launcher_ver=8 21 | _gcc_patchset=1 22 | pkgdesc="A web browser built for speed, simplicity, and security" 23 | arch=('aarch64' 'arm7h') 24 | url="https://www.chromium.org/Home" 25 | license=('BSD') 26 | depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' 27 | 'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva' 28 | 'wayland' 'desktop-file-utils' 'hicolor-icon-theme') 29 | makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire' 30 | 'qt5-base' 'java-runtime-headless' 'git') 31 | optdepends=('pipewire: WebRTC desktop sharing under Wayland' 32 | 'kdialog: support for native dialogs in Plasma' 33 | 'qt5-base: enable Qt5 with --enable-features=AllowQt' 34 | 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' 35 | 'kwallet: support for storing passwords in KWallet on Plasma') 36 | options=('!lto') # Chromium adds its own flags for ThinLTO 37 | source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz 38 | https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz 39 | https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz 40 | v8-enhance-Date-parser-to-take-Unicode-SPACE.patch 41 | REVERT-roll-src-third_party-ffmpeg-m102.patch 42 | REVERT-roll-src-third_party-ffmpeg-m106.patch 43 | disable-GlobalMediaControlsCastStartStop.patch 44 | angle-wayland-include-protocol.patch 45 | use-oauth2-client-switches-as-default.patch 46 | 0001-widevine-support-for-arm.patch 47 | 0002-Run-blink-bindings-generation-single-threaded.patch 48 | 0003-Fix-eu-strip-build-for-newer-GCC.patch) 49 | sha256sums=('eded233c26ab631be325ad49cb306c338513b6a6528197d42653e66187548e5d' 50 | '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' 51 | '1ca780a2ad5351f60671a828064392096c8da7b589086ee999f25c9e6e799a7b' 52 | 'b83406a881d66627757d9cbc05e345cbb2bd395a48b6d4c970e5e1cb3f6ed454' 53 | '30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44' 54 | '4c12d31d020799d31355faa7d1fe2a5a807f7458e7f0c374adf55edb37032152' 55 | '7f3b1b22d6a271431c1f9fc92b6eb49c6d80b8b3f868bdee07a6a1a16630a302' 56 | 'cd0d9d2a1d6a522d47c3c0891dabe4ad72eabbebc0fe5642b9e22efa3d5ee572' 57 | 'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711' 58 | 'e1162f40e736043ea88e9f5960232476130d3067c1663cf4b147c803abc8b94f' 59 | '306ea7ae2971d7cc3e9eaec70f7afd34330ff75d7fab414de1f241c61ae9c652' 60 | '4b2392f3bbcdb7ea6d6f13b53dfba12e2b436b036168dbeb59ff3e5a52145c3c') 61 | 62 | # Possible replacements are listed in build/linux/unbundle/replace_gn_files.py 63 | # Keys are the names in the above script; values are the dependencies in Arch 64 | declare -gA _system_libs=( 65 | [brotli]=brotli 66 | [dav1d]=dav1d 67 | [ffmpeg]=ffmpeg 68 | [flac]=flac 69 | [fontconfig]=fontconfig 70 | [freetype]=freetype2 71 | [harfbuzz-ng]=harfbuzz 72 | #[icu]=icu # https://crbug.com/1382032 73 | [jsoncpp]=jsoncpp 74 | [libaom]=aom 75 | [libavif]=libavif # needs https://github.com/AOMediaCodec/libavif/commit/d22d4de94120 76 | [libdrm]= 77 | [libjpeg]=libjpeg 78 | [libpng]=libpng 79 | #[libvpx]=libvpx 80 | [libwebp]=libwebp 81 | [libxml]=libxml2 82 | [libxslt]=libxslt 83 | [opus]=opus 84 | [re2]=re2 85 | [snappy]=snappy 86 | [woff2]=woff2 87 | [zlib]=minizip 88 | ) 89 | _unwanted_bundled_libs=( 90 | $(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/') 91 | ) 92 | depends+=(${_system_libs[@]}) 93 | 94 | # Google API keys (see https://www.chromium.org/developers/how-tos/api-keys) 95 | # Note: These are for Arch Linux use ONLY. For your own distribution, please 96 | # get your own set of keys. 97 | # 98 | # Starting with Chromium 89 (2021-03-02) the OAuth2 credentials have been left 99 | # out: https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ 100 | # - Arch Linux ARM has obtained permission to use the Arch Linux keys. 101 | _google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM 102 | 103 | prepare() { 104 | cd chromium-$pkgver 105 | 106 | # Allow building against system libraries in official builds 107 | sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ 108 | tools/generate_shim_headers/generate_shim_headers.py 109 | 110 | # Arch Linux ARM fixes 111 | patch -p1 -i ../0001-widevine-support-for-arm.patch 112 | patch -p1 -i ../0002-Run-blink-bindings-generation-single-threaded.patch 113 | patch -p1 -i ../0003-Fix-eu-strip-build-for-newer-GCC.patch 114 | 115 | if [[ $CARCH == "armv7h" ]]; then 116 | export ALARM_NINJA_JOBS="4" 117 | export MAKEFLAGS="-j4" 118 | fi 119 | 120 | # Allow build to set march and options on AArch64 (crc, crypto) 121 | [[ $CARCH == "aarch64" ]] && CFLAGS=`echo $CFLAGS | sed -e 's/-march=armv8-a//'` && CXXFLAGS="$CFLAGS" 122 | 123 | # https://crbug.com/893950 124 | sed -i -e 's/\/malloc/' -e 's/\/free/' \ 125 | third_party/blink/renderer/core/xml/*.cc \ 126 | third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \ 127 | third_party/libxml/chromium/*.cc \ 128 | third_party/maldoca/src/maldoca/ole/oss_utils.h 129 | 130 | # Use the --oauth2-client-id= and --oauth2-client-secret= switches for 131 | # setting GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET at 132 | # runtime -- this allows signing into Chromium without baked-in values 133 | patch -Np1 -i ../use-oauth2-client-switches-as-default.patch 134 | 135 | # Upstream fixes 136 | patch -Np1 -d v8 <../v8-enhance-Date-parser-to-take-Unicode-SPACE.patch 137 | 138 | # Revert ffmpeg roll requiring new channel layout API support 139 | # https://crbug.com/1325301 140 | patch -Rp1 -i ../REVERT-roll-src-third_party-ffmpeg-m102.patch 141 | # Revert switch from AVFrame::pkt_duration to AVFrame::duration 142 | patch -Rp1 -i ../REVERT-roll-src-third_party-ffmpeg-m106.patch 143 | 144 | # Disable kGlobalMediaControlsCastStartStop by default 145 | # https://crbug.com/1314342 146 | patch -Np1 -i ../disable-GlobalMediaControlsCastStartStop.patch 147 | 148 | # https://crbug.com/angleproject/7582 149 | patch -Np0 -i ../angle-wayland-include-protocol.patch 150 | 151 | # Fixes for building with libstdc++ instead of libc++ 152 | patch -Np1 -i ../patches/chromium-103-VirtualCursor-std-layout.patch 153 | 154 | # Link to system tools required by the build 155 | mkdir -p third_party/node/linux/node-linux-x64/bin 156 | ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin/ 157 | ln -sf /usr/bin/java third_party/jdk/current/bin/ 158 | 159 | # Remove bundled libraries for which we will use the system copies; this 160 | # *should* do what the remove_bundled_libraries.py script does, with the 161 | # added benefit of not having to list all the remaining libraries 162 | local _lib 163 | for _lib in ${_unwanted_bundled_libs[@]}; do 164 | find "third_party/$_lib" -type f \ 165 | \! -path "third_party/$_lib/chromium/*" \ 166 | \! -path "third_party/$_lib/google/*" \ 167 | \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \ 168 | \! -regex '.*\.\(gn\|gni\|isolate\)' \ 169 | -delete 170 | done 171 | 172 | ./build/linux/unbundle/replace_gn_files.py \ 173 | --system-libraries "${!_system_libs[@]}" 174 | } 175 | 176 | build() { 177 | make -C chromium-launcher-$_launcher_ver 178 | 179 | cd chromium-$pkgver 180 | 181 | # Rebuild eu-strip 182 | pushd buildtools/third_party/eu-strip 183 | ./build.sh 184 | popd 185 | 186 | export CC=clang 187 | export CXX=clang++ 188 | export AR=ar 189 | export NM=nm 190 | 191 | local _flags=( 192 | 'custom_toolchain="//build/toolchain/linux/unbundle:default"' 193 | 'host_toolchain="//build/toolchain/linux/unbundle:default"' 194 | 'clang_base_path="/usr"' 195 | 'clang_use_chrome_plugins=false' 196 | 'clang_use_default_sample_profile=false' 197 | 'use_allocator="none"' 198 | 'is_official_build=true' # implies is_cfi=true on x86_64 199 | 'symbol_level=0' # sufficient for backtraces on x86(_64) 200 | 'is_cfi=false' 201 | 'chrome_pgo_phase=0' 202 | 'treat_warnings_as_errors=false' 203 | 'disable_fieldtrial_testing_config=true' 204 | 'blink_enable_generated_code_formatting=false' 205 | 'ffmpeg_branding="Chrome"' 206 | 'proprietary_codecs=true' 207 | 'enable_platform_hevc=true' 208 | 'enable_hevc_parser_and_hw_decoder=true' 209 | 'enable_av1_decoder=true' 210 | 'enable_platform_ac3_eac3_audio=true' 211 | 'enable_platform_mpeg_h_audio=true' 212 | 'enable_platform_dolby_vision=true' 213 | 'enable_mse_mpeg2ts_stream_parser=true' 214 | 'rtc_use_pipewire=true' 215 | 'link_pulseaudio=true' 216 | 'use_custom_libcxx=false' 217 | 'use_gnome_keyring=false' 218 | 'use_gold=false' 219 | 'use_sysroot=false' 220 | 'use_system_libwayland=true' 221 | 'use_system_wayland_scanner=true' 222 | 'enable_hangout_services_extension=true' 223 | 'enable_widevine=true' 224 | 'enable_nacl=false' 225 | "google_api_key=\"$_google_api_key\"" 226 | ) 227 | 228 | if [[ -n ${_system_libs[icu]+set} ]]; then 229 | _flags+=('icu_use_data_file=false') 230 | fi 231 | 232 | _flags+=('use_thin_lto=false') 233 | 234 | # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) 235 | CFLAGS+=' -Wno-builtin-macro-redefined' 236 | CXXFLAGS+=' -Wno-builtin-macro-redefined' 237 | CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__=' 238 | 239 | # Do not warn about unknown warning options 240 | CFLAGS+=' -Wno-unknown-warning-option' 241 | CXXFLAGS+=' -Wno-unknown-warning-option' 242 | 243 | # Let Chromium set its own symbol level 244 | CFLAGS=${CFLAGS/-g } 245 | CXXFLAGS=${CXXFLAGS/-g } 246 | 247 | # https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123 248 | CFLAGS=${CFLAGS/-fexceptions} 249 | CFLAGS=${CFLAGS/-fcf-protection} 250 | CXXFLAGS=${CXXFLAGS/-fexceptions} 251 | CXXFLAGS=${CXXFLAGS/-fcf-protection} 252 | 253 | # This appears to cause random segfaults when combined with ThinLTO 254 | # https://bugs.archlinux.org/task/73518 255 | CFLAGS=${CFLAGS/-fstack-clash-protection} 256 | CXXFLAGS=${CXXFLAGS/-fstack-clash-protection} 257 | 258 | # https://crbug.com/957519#c122 259 | CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS} 260 | 261 | gn gen out/Release --args="${_flags[*]}" 262 | ninja -C out/Release chrome chrome_sandbox chromedriver.unstripped 263 | } 264 | 265 | package() { 266 | cd chromium-launcher-$_launcher_ver 267 | make PREFIX=/usr DESTDIR="$pkgdir" install 268 | install -Dm644 LICENSE \ 269 | "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" 270 | 271 | cd ../chromium-$pkgver 272 | 273 | install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" 274 | install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" 275 | 276 | install -Dm644 chrome/installer/linux/common/desktop.template \ 277 | "$pkgdir/usr/share/applications/chromium.desktop" 278 | install -Dm644 chrome/app/resources/manpage.1.in \ 279 | "$pkgdir/usr/share/man/man1/chromium.1" 280 | sed -i \ 281 | -e 's/@@MENUNAME@@/Chromium/g' \ 282 | -e 's/@@PACKAGE@@/chromium/g' \ 283 | -e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \ 284 | "$pkgdir/usr/share/applications/chromium.desktop" \ 285 | "$pkgdir/usr/share/man/man1/chromium.1" 286 | 287 | install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \ 288 | "$pkgdir/usr/share/metainfo/chromium.appdata.xml" 289 | sed -ni \ 290 | -e 's/chromium-browser\.desktop/chromium.desktop/' \ 291 | -e '//d' \ 292 | -e '/

/N;/

\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \ 293 | -e '/^ 3 | Date: Sat, 2 Apr 2022 05:13:53 +0000 4 | Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125 5 | commits) 6 | 7 | https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526 8 | 9 | Created with: 10 | roll-dep src/third_party/ffmpeg 11 | 12 | Fixed: 1293918 13 | Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng 14 | Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2 15 | Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647 16 | Auto-Submit: Dale Curtis 17 | Reviewed-by: Dan Sanders 18 | Commit-Queue: Dale Curtis 19 | Cr-Commit-Position: refs/heads/main@{#988253} 20 | --- 21 | .../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++--------- 22 | media/ffmpeg/ffmpeg_common.cc | 11 +++---- 23 | media/filters/audio_file_reader.cc | 9 +++--- 24 | media/filters/audio_file_reader_unittest.cc | 6 ++-- 25 | .../filters/audio_video_metadata_extractor.cc | 11 +++++-- 26 | .../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++-- 27 | ...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +- 28 | media/filters/ffmpeg_audio_decoder.cc | 13 +++++---- 29 | 8 files changed, 51 insertions(+), 37 deletions(-) 30 | 31 | diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc 32 | index e4fc3f460e2..9b1ad9f7675 100644 33 | --- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc 34 | +++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc 35 | @@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext( 36 | codec_context->sample_fmt = AV_SAMPLE_FMT_NONE; 37 | } 38 | 39 | - codec_context->channels = config.channel_count; 40 | + codec_context->ch_layout.nb_channels = config.channel_count; 41 | codec_context->sample_rate = config.samples_per_second; 42 | 43 | if (config.extra_data) { 44 | @@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format, 45 | case cdm::kAudioFormatPlanarS16: 46 | case cdm::kAudioFormatPlanarF32: { 47 | const int decoded_size_per_channel = 48 | - decoded_audio_size / av_frame.channels; 49 | - for (int i = 0; i < av_frame.channels; ++i) { 50 | + decoded_audio_size / av_frame.ch_layout.nb_channels; 51 | + for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) { 52 | memcpy(output_buffer, av_frame.extended_data[i], 53 | decoded_size_per_channel); 54 | output_buffer += decoded_size_per_channel; 55 | @@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize( 56 | // Success! 57 | decoding_loop_ = std::make_unique(codec_context_.get()); 58 | samples_per_second_ = config.samples_per_second; 59 | - bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8; 60 | + bytes_per_frame_ = 61 | + codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8; 62 | output_timestamp_helper_ = 63 | std::make_unique(config.samples_per_second); 64 | is_initialized_ = true; 65 | 66 | // Store initial values to guard against midstream configuration changes. 67 | - channels_ = codec_context_->channels; 68 | + channels_ = codec_context_->ch_layout.nb_channels; 69 | av_sample_format_ = codec_context_->sample_fmt; 70 | 71 | return true; 72 | @@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer( 73 | for (auto& frame : audio_frames) { 74 | int decoded_audio_size = 0; 75 | if (frame->sample_rate != samples_per_second_ || 76 | - frame->channels != channels_ || frame->format != av_sample_format_) { 77 | + frame->ch_layout.nb_channels != channels_ || 78 | + frame->format != av_sample_format_) { 79 | DLOG(ERROR) << "Unsupported midstream configuration change!" 80 | << " Sample Rate: " << frame->sample_rate << " vs " 81 | - << samples_per_second_ << ", Channels: " << frame->channels 82 | - << " vs " << channels_ << ", Sample Format: " << frame->format 83 | - << " vs " << av_sample_format_; 84 | + << samples_per_second_ 85 | + << ", Channels: " << frame->ch_layout.nb_channels << " vs " 86 | + << channels_ << ", Sample Format: " << frame->format << " vs " 87 | + << av_sample_format_; 88 | return cdm::kDecodeError; 89 | } 90 | 91 | decoded_audio_size = av_samples_get_buffer_size( 92 | - nullptr, codec_context_->channels, frame->nb_samples, 93 | + nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, 94 | codec_context_->sample_fmt, 1); 95 | if (!decoded_audio_size) 96 | continue; 97 | @@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame( 98 | size_t* total_size, 99 | std::vector>* audio_frames, 100 | AVFrame* frame) { 101 | - *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels, 102 | - frame->nb_samples, 103 | - codec_context_->sample_fmt, 1); 104 | + *total_size += av_samples_get_buffer_size( 105 | + nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, 106 | + codec_context_->sample_fmt, 1); 107 | audio_frames->emplace_back(av_frame_clone(frame)); 108 | return true; 109 | } 110 | diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc 111 | index 87ca8969626..76f03d6608e 100644 112 | --- a/media/ffmpeg/ffmpeg_common.cc 113 | +++ b/media/ffmpeg/ffmpeg_common.cc 114 | @@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, 115 | codec_context->sample_fmt, codec_context->codec_id); 116 | 117 | ChannelLayout channel_layout = 118 | - codec_context->channels > 8 119 | + codec_context->ch_layout.nb_channels > 8 120 | ? CHANNEL_LAYOUT_DISCRETE 121 | - : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout, 122 | - codec_context->channels); 123 | + : ChannelLayoutToChromeChannelLayout( 124 | + codec_context->ch_layout.u.mask, 125 | + codec_context->ch_layout.nb_channels); 126 | 127 | int sample_rate = codec_context->sample_rate; 128 | switch (codec) { 129 | @@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, 130 | extra_data, encryption_scheme, seek_preroll, 131 | codec_context->delay); 132 | if (channel_layout == CHANNEL_LAYOUT_DISCRETE) 133 | - config->SetChannelsForDiscrete(codec_context->channels); 134 | + config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels); 135 | 136 | #if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO) 137 | // These are bitstream formats unknown to ffmpeg, so they don't have 138 | @@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config, 139 | 140 | // TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses 141 | // said information to decode. 142 | - codec_context->channels = config.channels(); 143 | + codec_context->ch_layout.nb_channels = config.channels(); 144 | codec_context->sample_rate = config.samples_per_second(); 145 | 146 | if (config.extra_data().empty()) { 147 | diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc 148 | index 5f257bdfaa6..e1be5aa9a5b 100644 149 | --- a/media/filters/audio_file_reader.cc 150 | +++ b/media/filters/audio_file_reader.cc 151 | @@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() { 152 | 153 | // Verify the channel layout is supported by Chrome. Acts as a sanity check 154 | // against invalid files. See http://crbug.com/171962 155 | - if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout, 156 | - codec_context_->channels) == 157 | + if (ChannelLayoutToChromeChannelLayout( 158 | + codec_context_->ch_layout.u.mask, 159 | + codec_context_->ch_layout.nb_channels) == 160 | CHANNEL_LAYOUT_UNSUPPORTED) { 161 | return false; 162 | } 163 | 164 | // Store initial values to guard against midstream configuration changes. 165 | - channels_ = codec_context_->channels; 166 | + channels_ = codec_context_->ch_layout.nb_channels; 167 | audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id); 168 | sample_rate_ = codec_context_->sample_rate; 169 | av_sample_format_ = codec_context_->sample_fmt; 170 | @@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame( 171 | if (frames_read < 0) 172 | return false; 173 | 174 | - const int channels = frame->channels; 175 | + const int channels = frame->ch_layout.nb_channels; 176 | if (frame->sample_rate != sample_rate_ || channels != channels_ || 177 | frame->format != av_sample_format_) { 178 | DLOG(ERROR) << "Unsupported midstream configuration change!" 179 | diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc 180 | index 2aba7927a31..1f45a50cace 100644 181 | --- a/media/filters/audio_file_reader_unittest.cc 182 | +++ b/media/filters/audio_file_reader_unittest.cc 183 | @@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test { 184 | EXPECT_FALSE(reader_->Open()); 185 | } 186 | 187 | - void RunTestFailingDecode(const char* fn) { 188 | + void RunTestFailingDecode(const char* fn, int expect_read = 0) { 189 | Initialize(fn); 190 | EXPECT_TRUE(reader_->Open()); 191 | std::vector> decoded_audio_packets; 192 | - EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0); 193 | + EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read); 194 | } 195 | 196 | void RunTestPartialDecode(const char* fn) { 197 | @@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) { 198 | } 199 | 200 | TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) { 201 | - RunTestFailingDecode("midstream_config_change.mp3"); 202 | + RunTestFailingDecode("midstream_config_change.mp3", 42624); 203 | } 204 | #endif 205 | 206 | diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc 207 | index 185819eb936..69ff508c221 100644 208 | --- a/media/filters/audio_video_metadata_extractor.cc 209 | +++ b/media/filters/audio_video_metadata_extractor.cc 210 | @@ -113,6 +113,15 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source, 211 | if (!stream) 212 | continue; 213 | 214 | + void* display_matrix = 215 | + av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr); 216 | + if (display_matrix) { 217 | + rotation_ = VideoTransformation::FromFFmpegDisplayMatrix( 218 | + static_cast(display_matrix)) 219 | + .rotation; 220 | + info.tags["rotate"] = base::NumberToString(rotation_); 221 | + } 222 | + 223 | // Extract dictionary from streams also. Needed for containers that attach 224 | // metadata to contained streams instead the container itself, like OGG. 225 | ExtractDictionary(stream->metadata, &info.tags); 226 | @@ -255,8 +264,6 @@ void AudioVideoMetadataExtractor::ExtractDictionary(AVDictionary* metadata, 227 | if (raw_tags->find(tag->key) == raw_tags->end()) 228 | (*raw_tags)[tag->key] = tag->value; 229 | 230 | - if (ExtractInt(tag, "rotate", &rotation_)) 231 | - continue; 232 | if (ExtractString(tag, "album", &album_)) 233 | continue; 234 | if (ExtractString(tag, "artist", &artist_)) 235 | diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc 236 | index 6f231c85729..ca5e5fb927d 100644 237 | --- a/media/filters/ffmpeg_aac_bitstream_converter.cc 238 | +++ b/media/filters/ffmpeg_aac_bitstream_converter.cc 239 | @@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { 240 | if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id || 241 | audio_profile_ != stream_codec_parameters_->profile || 242 | sample_rate_index_ != sample_rate_index || 243 | - channel_configuration_ != stream_codec_parameters_->channels || 244 | + channel_configuration_ != 245 | + stream_codec_parameters_->ch_layout.nb_channels || 246 | frame_length_ != header_plus_packet_size) { 247 | header_generated_ = 248 | GenerateAdtsHeader(stream_codec_parameters_->codec_id, 249 | 0, // layer 250 | stream_codec_parameters_->profile, sample_rate_index, 251 | 0, // private stream 252 | - stream_codec_parameters_->channels, 253 | + stream_codec_parameters_->ch_layout.nb_channels, 254 | 0, // originality 255 | 0, // home 256 | 0, // copyrighted_stream 257 | @@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { 258 | codec_ = stream_codec_parameters_->codec_id; 259 | audio_profile_ = stream_codec_parameters_->profile; 260 | sample_rate_index_ = sample_rate_index; 261 | - channel_configuration_ = stream_codec_parameters_->channels; 262 | + channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels; 263 | frame_length_ = header_plus_packet_size; 264 | } 265 | 266 | diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 267 | index 1fd4c5ccd7d..f59bcd8fdaf 100644 268 | --- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 269 | +++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 270 | @@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test { 271 | memset(&test_parameters_, 0, sizeof(AVCodecParameters)); 272 | test_parameters_.codec_id = AV_CODEC_ID_AAC; 273 | test_parameters_.profile = FF_PROFILE_AAC_MAIN; 274 | - test_parameters_.channels = 2; 275 | + test_parameters_.ch_layout.nb_channels = 2; 276 | test_parameters_.extradata = extradata_header_; 277 | test_parameters_.extradata_size = sizeof(extradata_header_); 278 | } 279 | diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc 280 | index 6a56c675f7d..4615fdeb3fb 100644 281 | --- a/media/filters/ffmpeg_audio_decoder.cc 282 | +++ b/media/filters/ffmpeg_audio_decoder.cc 283 | @@ -28,7 +28,7 @@ namespace media { 284 | 285 | // Return the number of channels from the data in |frame|. 286 | static inline int DetermineChannels(AVFrame* frame) { 287 | - return frame->channels; 288 | + return frame->ch_layout.nb_channels; 289 | } 290 | 291 | // Called by FFmpeg's allocation routine to allocate a buffer. Uses 292 | @@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer, 293 | // Translate unsupported into discrete layouts for discrete configurations; 294 | // ffmpeg does not have a labeled discrete configuration internally. 295 | ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout( 296 | - codec_context_->channel_layout, codec_context_->channels); 297 | + codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels); 298 | if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED && 299 | config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) { 300 | channel_layout = CHANNEL_LAYOUT_DISCRETE; 301 | @@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) { 302 | // Success! 303 | av_sample_format_ = codec_context_->sample_fmt; 304 | 305 | - if (codec_context_->channels != config.channels()) { 306 | + if (codec_context_->ch_layout.nb_channels != config.channels()) { 307 | MEDIA_LOG(ERROR, media_log_) 308 | << "Audio configuration specified " << config.channels() 309 | << " channels, but FFmpeg thinks the file contains " 310 | - << codec_context_->channels << " channels"; 311 | + << codec_context_->ch_layout.nb_channels << " channels"; 312 | ReleaseFFmpegResources(); 313 | state_ = DecoderState::kUninitialized; 314 | return false; 315 | @@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, 316 | if (frame->nb_samples <= 0) 317 | return AVERROR(EINVAL); 318 | 319 | - if (s->channels != channels) { 320 | + if (s->ch_layout.nb_channels != channels) { 321 | DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count."; 322 | return AVERROR(EINVAL); 323 | } 324 | @@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, 325 | ChannelLayout channel_layout = 326 | config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE 327 | ? CHANNEL_LAYOUT_DISCRETE 328 | - : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels); 329 | + : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask, 330 | + s->ch_layout.nb_channels); 331 | 332 | if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) { 333 | DLOG(ERROR) << "Unsupported channel layout."; 334 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/REVERT-roll-src-third_party-ffmpeg-m106.patch: -------------------------------------------------------------------------------- 1 | From ded379824f5de39357b6b1894578101aba5cdf05 Mon Sep 17 00:00:00 2001 2 | From: Eugene Zemtsov 3 | Date: Fri, 29 Jul 2022 04:41:04 +0000 4 | Subject: [PATCH] Roll src/third_party/ffmpeg/ 880df5ede..b71ecd02b (279 5 | commits) 6 | 7 | https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/880df5ede50a..b71ecd02b479 8 | 9 | $ git log 880df5ede..b71ecd02b --date=short --no-merges --format='%ad %ae %s' 10 | 2022-07-27 eugene Roll for M106 11 | 2022-07-25 andreas.rheinhardt avcodec/x86/pngdsp: Remove obsolete ff_add_bytes_l2_mmx() 12 | 2022-07-22 andreas.rheinhardt avcodec/hevcdec: Output MD5-message in one piece 13 | 2022-07-24 epirat07 configure: properly require libx264 if enabled 14 | 2022-07-24 zane avformat/argo_cvg: expose loop/reverb/checksum via metadata 15 | (...) 16 | 2022-05-03 leo.izen avcodec/libjxldec: properly tag output colorspace 17 | 2022-06-25 ffmpeg avfilter/Makefile: always make colorspace.o 18 | 2022-03-02 brad avutil/ppc/cpu: Use proper header for OpenBSD PPC CPU detection 19 | 2022-06-24 jamrial avformat/http: include version.h 20 | 2022-05-16 mbonda-at-nvidia.com AV1 VDPAU hwaccel Decode support 21 | 22 | Created with: 23 | roll-dep src/third_party/ffmpeg 24 | 25 | ffmpeg usage fix: 26 | Switch from AVFrame::pkt_duration to AVFrame::duration, 27 | AVFrame::pkt_duration is deprecated 28 | 29 | Bug: 1344646 30 | Change-Id: Iaa3abf48ef81dae6d282bca8f0fa2a8dffeeba25 31 | Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3788638 32 | Reviewed-by: Will Cassella 33 | Commit-Queue: Eugene Zemtsov 34 | Cr-Commit-Position: refs/heads/main@{#1029623} 35 | --- 36 | media/filters/audio_file_reader.cc | 4 ++-- 37 | 1 file changed, 2 insertions(+), 2 deletions(-) 38 | 39 | diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc 40 | index e1be5aa9a5b..951c003956f 100644 41 | --- a/media/filters/audio_file_reader.cc 42 | +++ b/media/filters/audio_file_reader.cc 43 | @@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame( 44 | // silence from being output. In the case where we are also discarding some 45 | // portion of the packet (as indicated by a negative pts), we further want to 46 | // adjust the duration downward by however much exists before zero. 47 | - if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) { 48 | + if (audio_codec_ == AudioCodec::kAAC && frame->duration) { 49 | const base::TimeDelta pkt_duration = ConvertFromTimeBase( 50 | glue_->format_context()->streams[stream_index_]->time_base, 51 | - frame->pkt_duration + std::min(static_cast(0), frame->pts)); 52 | + frame->duration + std::min(static_cast(0), frame->pts)); 53 | const base::TimeDelta frame_duration = 54 | base::Seconds(frames_read / static_cast(sample_rate_)); 55 | 56 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/angle-wayland-include-protocol.patch: -------------------------------------------------------------------------------- 1 | diff -upr third_party/angle.orig/BUILD.gn third_party/angle/BUILD.gn 2 | --- third_party/angle.orig/BUILD.gn 2022-08-17 19:38:11.000000000 +0000 3 | +++ third_party/angle/BUILD.gn 2022-08-18 11:04:09.061751111 +0000 4 | @@ -489,6 +489,12 @@ config("angle_vulkan_wayland_config") { 5 | if (angle_enable_vulkan && angle_use_wayland && 6 | defined(vulkan_wayland_include_dirs)) { 7 | include_dirs = vulkan_wayland_include_dirs 8 | + } else if (angle_enable_vulkan && angle_use_wayland) { 9 | + include_dirs = [ 10 | + "$wayland_gn_dir/src/src", 11 | + "$wayland_gn_dir/include/src", 12 | + "$wayland_gn_dir/include/protocol", 13 | + ] 14 | } 15 | } 16 | 17 | @@ -1073,6 +1079,7 @@ if (angle_use_wayland) { 18 | include_dirs = [ 19 | "$wayland_dir/egl", 20 | "$wayland_dir/src", 21 | + "$wayland_gn_dir/include/protocol", 22 | ] 23 | } 24 | 25 | diff -upr third_party/angle.orig/src/third_party/volk/BUILD.gn third_party/angle/src/third_party/volk/BUILD.gn 26 | --- third_party/angle.orig/src/third_party/volk/BUILD.gn 2022-08-17 19:38:12.000000000 +0000 27 | +++ third_party/angle/src/third_party/volk/BUILD.gn 2022-08-18 11:04:36.499828006 +0000 28 | @@ -21,6 +21,9 @@ source_set("volk") { 29 | configs += [ "$angle_root:angle_no_cfi_icall" ] 30 | public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ] 31 | if (angle_use_wayland) { 32 | - include_dirs = [ "$wayland_dir/src" ] 33 | + include_dirs = [ 34 | + "$wayland_dir/src", 35 | + "$wayland_gn_dir/include/protocol", 36 | + ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/chromium-icu72.patch: -------------------------------------------------------------------------------- 1 | From 2c4d3c61aa33f3169e7923ea3433c71e3df0952f Mon Sep 17 00:00:00 2001 2 | From: Frank Tang 3 | Date: Mon, 7 Nov 2022 22:08:05 +0000 4 | Subject: [PATCH 1/2] Prepare for ICU72 landing 5 | 6 | The date format may output U+202F Narrow SPACE between time 7 | and AM/PM. So switch to use UTF8 and not restrict to ASCII which 8 | will break when the output is not only ASCII. 9 | 10 | Bug: 1371208 11 | Change-Id: I05f9daadfba5c45d618f15ae23340da373f2f36a 12 | Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4007076 13 | Reviewed-by: Daniel Rubery 14 | Commit-Queue: Frank Tang 15 | Cr-Commit-Position: refs/heads/main@{#1068343} 16 | 17 | (cherry picked from commit ce2ffed84b95e2b7c068d6f066d86cd034212425) 18 | --- 19 | .../safe_browsing/content/browser/web_ui/safe_browsing_ui.cc | 2 +- 20 | 1 file changed, 1 insertion(+), 1 deletion(-) 21 | 22 | diff --git a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc 23 | index 92597a9d3a4..e6e7514a082 100644 24 | --- a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc 25 | +++ b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc 26 | @@ -457,7 +457,7 @@ namespace { 27 | std::string UserReadableTimeFromMillisSinceEpoch(int64_t time_in_milliseconds) { 28 | base::Time time = 29 | base::Time::UnixEpoch() + base::Milliseconds(time_in_milliseconds); 30 | - return base::UTF16ToASCII(base::TimeFormatShortDateAndTime(time)); 31 | + return base::UTF16ToUTF8(base::TimeFormatShortDateAndTime(time)); 32 | } 33 | 34 | void AddStoreInfo(const DatabaseManagerInfo::DatabaseInfo::StoreInfo store_info, 35 | 36 | From 8ba9d96da703978655cddf07d58b0a15f0a43a10 Mon Sep 17 00:00:00 2001 37 | From: Frank Tang 38 | Date: Tue, 8 Nov 2022 00:13:16 +0000 39 | Subject: [PATCH 2/2] Prepare the landing of ICU72/Unicode 15 40 | 41 | See 42 | https://www.unicode.org/emoji/charts-15.0/emoji-released.html 43 | https://www.unicode.org/charts/PDF/U1F680.pdf 44 | https://www.unicode.org/charts/PDF/U1FA70.pdf 45 | for the newly added emoji to 46 | Transport and Map Symbols 47 | Symbols and Pictographs Extended-A blocks. 48 | 49 | Update the kIsCJKIdeographOrSymbolRanges to Unicode 15 50 | Needed to avoid test breakage of 51 | CharacterTest.HammerEmojiVsCJKIdeographOrSymbol 52 | 53 | Bug: 1371208 54 | Change-Id: Ic7b319ba18f3aded46b252d8b484e3b1bc43eff4 55 | Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4007098 56 | Reviewed-by: Stephen Chenney 57 | Commit-Queue: Frank Tang 58 | Cr-Commit-Position: refs/heads/main@{#1068422} 59 | 60 | (cherry picked from commit d93a774bf6fac8ddaaa1041ea6ad2dd8e5ff4539) 61 | --- 62 | .../platform/text/character_property_data.h | 24 +++++++++---------- 63 | 1 file changed, 12 insertions(+), 12 deletions(-) 64 | 65 | diff --git a/third_party/blink/renderer/platform/text/character_property_data.h b/third_party/blink/renderer/platform/text/character_property_data.h 66 | index 9005c20a379..ee690563c28 100644 67 | --- a/third_party/blink/renderer/platform/text/character_property_data.h 68 | +++ b/third_party/blink/renderer/platform/text/character_property_data.h 69 | @@ -107,7 +107,7 @@ static const UChar32 kIsCJKIdeographOrSymbolRanges[] = { 70 | 0x1F3FB, 0x1F3FF, 71 | 72 | // Transport 73 | - 0x1F6DD, 0x1F6DF, 74 | + 0x1F6DC, 0x1F6DF, 75 | 76 | // Colored circles and squares for use with emoji. 77 | 0x1F7E0, 0x1F7EB, 78 | @@ -118,25 +118,25 @@ static const UChar32 kIsCJKIdeographOrSymbolRanges[] = { 79 | 0x1F900, 0x1F90F, 80 | // ZIPPER-MOUTH FACE...SIGN OF THE HORNS 81 | 0x1F910, 0x1F918, 0x1F919, 0x1F97F, 0x1F980, 0x1F9BF, 0x1F9C0, 0x1F9FF, 82 | - // Clothing 83 | - 0x1FA70, 0x1FA74, 84 | - // Medical symbols 85 | - 0x1FA78, 0x1FA7C, 86 | + // Clothing, heart and Medical symbols 87 | + 0x1FA70, 0x1FA7C, 88 | // Toys and sport symbols 89 | - 0x1FA80, 0x1FA86, 90 | + 0x1FA80, 0x1FA88, 91 | // Miscellaneous objects 92 | - 0x1FA90, 0x1FAAC, 93 | // Animals and nature 94 | - 0x1FAB0, 0x1FABA, 95 | + 0x1FA90, 0x1FABD, 96 | + // Animal 97 | // Body parts 98 | // People 99 | - 0x1FAC0, 0x1FAC5, 100 | + 0x1FABF, 0x1FAC5, 101 | + // animal-mammal 102 | + 0x1FACE, 0x1FACF, 103 | // Food and drink 104 | - 0x1FAD0, 0x1FAD9, 105 | + 0x1FAD0, 0x1FADB, 106 | // Face 107 | - 0x1FAE0, 0x1FAE7, 108 | + 0x1FAE0, 0x1FAE8, 109 | // Hand 110 | - 0x1FAF0, 0x1FAF6, 111 | + 0x1FAF0, 0x1FAF8, 112 | }; 113 | 114 | // https://html.spec.whatwg.org/C/#prod-potentialcustomelementname 115 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/disable-GlobalMediaControlsCastStartStop.patch: -------------------------------------------------------------------------------- 1 | diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc 2 | index 862329ef314..47c89123876 100644 3 | --- a/chrome/browser/media/router/media_router_feature.cc 4 | +++ b/chrome/browser/media/router/media_router_feature.cc 5 | @@ -54,7 +54,7 @@ BASE_FEATURE(kGlobalMediaControlsCastStartStop, 6 | #else 7 | BASE_FEATURE(kGlobalMediaControlsCastStartStop, 8 | "GlobalMediaControlsCastStartStop", 9 | - base::FEATURE_ENABLED_BY_DEFAULT); 10 | + base::FEATURE_DISABLED_BY_DEFAULT); 11 | #endif // BUILDFLAG(IS_CHROMEOS) 12 | 13 | #endif // !BUILDFLAG(IS_ANDROID) 14 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/use-oauth2-client-switches-as-default.patch: -------------------------------------------------------------------------------- 1 | diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc 2 | --- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000 3 | +++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000 4 | @@ -154,11 +154,11 @@ class APIKeyCache { 5 | 6 | std::string default_client_id = CalculateKeyValue( 7 | GOOGLE_DEFAULT_CLIENT_ID, 8 | - STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, 9 | + STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, 10 | std::string(), environment.get(), command_line, gaia_config); 11 | std::string default_client_secret = CalculateKeyValue( 12 | GOOGLE_DEFAULT_CLIENT_SECRET, 13 | - STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, 14 | + STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret, 15 | std::string(), environment.get(), command_line, gaia_config); 16 | 17 | // We currently only allow overriding the baked-in values for the 18 | -------------------------------------------------------------------------------- /rock5b/archive/chromium-ffmpeg/v8-enhance-Date-parser-to-take-Unicode-SPACE.patch: -------------------------------------------------------------------------------- 1 | From 81dd64c3705f89653859a5d0001dd0ca983a92e2 Mon Sep 17 00:00:00 2001 2 | From: Frank Tang 3 | Date: Wed, 16 Nov 2022 09:18:45 -0800 4 | Subject: [PATCH] [intl] Enhance Date parser to take Unicode SPACE 5 | 6 | This is needed to prepare for the landing of ICU72. 7 | Allow U+202F in the Date String, which the toLocaleString("en-US") 8 | will generate w/ ICU72. 9 | 10 | Bug: v8:13494 11 | Change-Id: I41b83c4094ce3d0737a72dcd6310b52c68fdcdca 12 | Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4027341 13 | Reviewed-by: Yang Guo 14 | Reviewed-by: Jungshik Shin 15 | Commit-Queue: Frank Tang 16 | Cr-Commit-Position: refs/heads/main@{#84308} 17 | 18 | (cherry picked from commit 2ada52cffbff11074abfaac18938bf02d85454f5) 19 | --- 20 | src/date/dateparser-inl.h | 2 +- 21 | src/date/dateparser.h | 4 +++- 22 | 2 files changed, 4 insertions(+), 2 deletions(-) 23 | 24 | diff --git a/src/date/dateparser-inl.h b/src/date/dateparser-inl.h 25 | index 623986d2b1..b45479dc51 100644 26 | --- a/src/date/dateparser-inl.h 27 | +++ b/src/date/dateparser-inl.h 28 | @@ -192,7 +192,7 @@ DateParser::DateToken DateParser::DateStringTokenizer::Scan() { 29 | if (in_->Skip('+')) return DateToken::Symbol('+'); 30 | if (in_->Skip('.')) return DateToken::Symbol('.'); 31 | if (in_->Skip(')')) return DateToken::Symbol(')'); 32 | - if (in_->IsAsciiAlphaOrAbove()) { 33 | + if (in_->IsAsciiAlphaOrAbove() && !in_->IsWhiteSpaceChar()) { 34 | DCHECK_EQ(KeywordTable::kPrefixLength, 3); 35 | uint32_t buffer[3] = {0, 0, 0}; 36 | int length = in_->ReadWord(buffer, 3); 37 | diff --git a/src/date/dateparser.h b/src/date/dateparser.h 38 | index 1a0a0b15ab..59b2f3c9fd 100644 39 | --- a/src/date/dateparser.h 40 | +++ b/src/date/dateparser.h 41 | @@ -91,7 +91,8 @@ class DateParser : public AllStatic { 42 | // Return word length. 43 | int ReadWord(uint32_t* prefix, int prefix_size) { 44 | int len; 45 | - for (len = 0; IsAsciiAlphaOrAbove(); Next(), len++) { 46 | + for (len = 0; IsAsciiAlphaOrAbove() && !IsWhiteSpaceChar(); 47 | + Next(), len++) { 48 | if (len < prefix_size) prefix[len] = AsciiAlphaToLower(ch_); 49 | } 50 | for (int i = len; i < prefix_size; i++) prefix[i] = 0; 51 | @@ -115,6 +116,7 @@ class DateParser : public AllStatic { 52 | bool IsEnd() const { return ch_ == 0; } 53 | bool IsAsciiDigit() const { return IsDecimalDigit(ch_); } 54 | bool IsAsciiAlphaOrAbove() const { return ch_ >= 'A'; } 55 | + bool IsWhiteSpaceChar() const { return IsWhiteSpace(ch_); } 56 | bool IsAsciiSign() const { return ch_ == '+' || ch_ == '-'; } 57 | 58 | // Return 1 for '+' and -1 for '-'. 59 | -------------------------------------------------------------------------------- /rock5b/archive/librga/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgver=rkr3.5 2 | _rev="gen-${pkgver}" 3 | _bsp="linux-5.10-${_rev}" 4 | _project="linux-rga" 5 | pkgname=librga 6 | pkgrel=1 7 | pkgdesc='Rockchip RGA User-Space Library' 8 | arch=('aarch64') 9 | url='https://gitlab.com/rk3588_linux/linux/linux-rga' 10 | license=('Apache') 11 | depends=('gcc-libs' 'meson') 12 | makedepends=('meson') 13 | source=("${pkgname}-${pkgver}".tar.gz::"https://gitlab.com/rk3588_linux/linux/${_project}/-/archive/${_bsp}/${_project}-${_bsp}.tar.gz") 14 | sha256sums=('SKIP') 15 | 16 | build() { 17 | meson setup --prefix $pkgdir/usr builddir $_project-$_bsp 18 | ninja -C builddir 19 | } 20 | 21 | package() { 22 | provides=($pkgname) 23 | replaces=($pkgname) 24 | conflicts=($pkgname) 25 | depends=("libdrm") 26 | ninja -C builddir install 27 | } -------------------------------------------------------------------------------- /rock5b/archive/libv4l-rkmpp-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | _project="libv4l-rkmpp" 2 | _commit="a32b4ccf380523f18e39c7738fd00bbafcfc1f4a" 3 | pkgname="${_project}-git" 4 | pkgver=r1.${_commit} 5 | pkgrel=1 6 | pkgdesc='libv4l plugin provides hw video decoder/encoder for Rockchip SOCs' 7 | arch=('aarch64' 'armhf') 8 | url='https://github.com/JeffyCN/libv4l-rkmpp' 9 | license=('LGPL v2.1') 10 | depends=('librga' 'mpp-git' 'v4l-utils-mmap') 11 | makedepends=('meson') 12 | source=("${pkgname}-${pkgver}".tar.gz::"${url}/archive/refs/heads/master.tar.gz") 13 | sha256sums=('SKIP') 14 | 15 | build() { 16 | meson setup --prefix $pkgdir/usr builddir $_project-master 17 | ninja -C builddir 18 | } 19 | 20 | package() { 21 | provides=($pkgname) 22 | conflicts=($pkgname) 23 | ninja -C builddir install 24 | } -------------------------------------------------------------------------------- /rock5b/archive/opera/PKGBUILD: -------------------------------------------------------------------------------- 1 | # vim:set ft=sh: 2 | # Maintainer: BlackEagle < ike DOT devolder AT gmail DOT com > 3 | # Contributor: Bartłomiej Piotrowski 4 | # Contributor: Mateusz Herych 5 | # Contributor: ruario 6 | # Contributor: Daniel Isenmann 7 | # Contributor: dorphell 8 | # Contributor: Sigitas Mazaliauskas 9 | # Contributor: eworm 10 | 11 | pkgname=opera 12 | pkgver=94.0.4606.65 13 | pkgrel=1 14 | pkgdesc="A fast and secure web browser" 15 | url="https://www.opera.com/" 16 | options=(!strip !zipman) 17 | license=('custom:opera') 18 | backup=("etc/$pkgname/default") 19 | arch=('aarch64' 'arm7f') 20 | depends=('gtk3' 'alsa-lib' 'libnotify' 'curl' 'nss' 'libcups' 'libxss' 'ttf-font' 'desktop-file-utils' 'shared-mime-info' 'hicolor-icon-theme') 21 | optdepends=( 22 | 'opera-ffmpeg-codecs: playback of proprietary video/audio' 23 | 'upower: opera battery save' 24 | ) 25 | source=( 26 | "https://get.geo.opera.com/pub/${pkgname}/desktop/${pkgver}/linux/${pkgname}-stable_${pkgver}_amd64.deb" 27 | "opera" 28 | "default" 29 | 'eula.html' 30 | 'terms.html' 31 | 'privacy.html' 32 | ) 33 | sha512sums=('d0256dcd1716dd57ccee33d9a4c5d6cf879d029514ee759044a2c1cc4087ee3e790e703b614707f6b69effb135302a261fc86a46b134c2b5cdae9ebefa759169' 34 | '7e854e4c972785b8941f60117fbe4b88baeb8d7ca845ef2e10e8064043411da73821ba1ab0068df61e902f242a3ce355b51ffa9eab5397ff3ae3b5defd1be496' 35 | 'ddb1773877fcfd7d9674e63263a80f9dd5a3ba414cda4cc6c411c88d49c1d5175eede66d9362558ddd53c928c723101e4e110479ae88b8aec4d2366ec179297f' 36 | 'aaaa4435a3b6a08bf8e6ad4802afcbf111c1e8f477054251f031b70ae57ac1234fa19048121d64c878dc3b1de03522ce7ef11a263a86dc7062f643d569ecff82' 37 | '800d62321344ff4e3521ff20fae281cad9206bae80e60965784d144f8bf852f756cbc21f4c9d8d4e93d026da7ca10e0eda7601c83a6d8d85125831eacb907d9a' 38 | '43d4a066758805597527dbdfc95b4c8ad4b22c5db812b9493e50f8820c72f30c1e431bed40fdb821ab0c23a63aa31dc0e946ab708cc23ac617446964fa6b96f2') 39 | 40 | prepare() { 41 | sed -e "s/%pkgname%/$pkgname/g" -i "$srcdir/opera" 42 | sed -e "s/%operabin%/$pkgname\/$pkgname/g" \ 43 | -i "$srcdir/opera" 44 | 45 | } 46 | 47 | package() { 48 | tar -xf data.tar.xz --exclude=usr/share/{lintian,menu} -C "$pkgdir/" 49 | 50 | # get rid of the extra subfolder {i386,x86_64}-linux-gnu 51 | ( 52 | cd "$pkgdir/usr/lib/"*-linux-gnu/ 53 | mv "$pkgname" ../ 54 | ) 55 | rm -rf "$pkgdir/usr/lib/"*-linux-gnu 56 | 57 | # suid opera_sandbox 58 | chmod 4755 "$pkgdir/usr/lib/$pkgname/opera_sandbox" 59 | 60 | # install default options 61 | install -Dm644 "$srcdir/default" "$pkgdir/etc/$pkgname/default" 62 | 63 | # install opera wrapper 64 | rm "$pkgdir/usr/bin/$pkgname" 65 | install -Dm755 "$srcdir/opera" "$pkgdir/usr/bin/$pkgname" 66 | 67 | # license 68 | install -Dm644 \ 69 | "$pkgdir/usr/share/doc/${pkgname}-stable/copyright" \ 70 | "$pkgdir/usr/share/licenses/$pkgname/copyright" 71 | 72 | # eula 73 | install -Dm644 \ 74 | "$srcdir/eula.html" \ 75 | "$pkgdir/usr/share/licenses/$pkgname/eula.html" 76 | 77 | # terms 78 | install -Dm644 \ 79 | "$srcdir/terms.html" \ 80 | "$pkgdir/usr/share/licenses/$pkgname/terms.html" 81 | 82 | # privacy 83 | install -Dm644 \ 84 | "$srcdir/privacy.html" \ 85 | "$pkgdir/usr/share/licenses/$pkgname/privacy.html" 86 | } 87 | 88 | -------------------------------------------------------------------------------- /rock5b/archive/opera/default: -------------------------------------------------------------------------------- 1 | # Default settings for chromium. This file is sourced by /usr/bin/chromium 2 | 3 | # Options to pass to chromium 4 | OPERA_FLAGS="" 5 | -------------------------------------------------------------------------------- /rock5b/archive/opera/opera: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Allow users to override command-line options 4 | # Based on Gentoo's chromium package (and by extension, Debian's) 5 | if [[ -f /etc/%pkgname%/default ]]; then 6 | . /etc/%pkgname%/default 7 | fi 8 | 9 | # Prefer user defined CHROMIUM_USER_FLAGS (from env) over system 10 | # default CHROMIUM_FLAGS (from /etc/chromium/default) 11 | OPERA_FLAGS=${OPERA_USER_FLAGS:-$OPERA_FLAGS} 12 | 13 | exec /usr/lib/%operabin% $OPERA_FLAGS "$@" 14 | -------------------------------------------------------------------------------- /rock5b/archive/opera/opera.install: -------------------------------------------------------------------------------- 1 | available() 2 | { 3 | command -v $1 >/dev/null 2>&1 4 | } 5 | 6 | integration() { 7 | 8 | # Setup Menus 9 | if available update-desktop-database 10 | then 11 | update-desktop-database -q /usr/share/applications 12 | fi 13 | 14 | # Setup MIME types 15 | if available update-mime-database 16 | then 17 | update-mime-database /usr/share/mime >/dev/null 18 | fi 19 | 20 | # Setup Icons 21 | touch -c /usr/share/icons/hicolor 22 | if available gtk-update-icon-cache 23 | then 24 | gtk-update-icon-cache -tq /usr/share/icons/hicolor 25 | fi 26 | 27 | } 28 | 29 | post_install() { 30 | integration 31 | } 32 | 33 | post_upgrade() { 34 | integration 35 | } 36 | 37 | post_remove() { 38 | integration 39 | } 40 | -------------------------------------------------------------------------------- /rock5b/archive/opera/privacy.html:Zone.Identifier: -------------------------------------------------------------------------------- 1 | [ZoneTransfer] 2 | ZoneId=3 3 | HostUrl=https://raw.githubusercontent.com/archlinux/svntogit-community/packages/opera/trunk/privacy.html 4 | -------------------------------------------------------------------------------- /rock5b/archive/v4l-utils-mmap/0001-libv4l2-Support-mmap-to-libv4l-plugin.patch: -------------------------------------------------------------------------------- 1 | From 40c17dd62e8c0769f62f6b8529d20e03baadceab Mon Sep 17 00:00:00 2001 2 | From: Jeffy Chen 3 | Date: Sun, 28 Apr 2019 15:31:53 +0800 4 | Subject: [PATCH] libv4l2: Support mmap() to libv4l-plugin 5 | 6 | Signed-off-by: Jeffy Chen 7 | --- 8 | lib/include/libv4l-plugin.h | 2 ++ 9 | lib/libv4l2/libv4l2.c | 10 ++++++++++ 10 | 2 files changed, 12 insertions(+) 11 | 12 | diff --git a/lib/include/libv4l-plugin.h b/lib/include/libv4l-plugin.h 13 | index 23b2dfb..acb0a54 100644 14 | --- a/lib/include/libv4l-plugin.h 15 | +++ b/lib/include/libv4l-plugin.h 16 | @@ -32,6 +32,8 @@ struct libv4l_dev_ops { 17 | int (*ioctl)(void *dev_ops_priv, int fd, unsigned long int request, void *arg); 18 | ssize_t (*read)(void *dev_ops_priv, int fd, void *buffer, size_t n); 19 | ssize_t (*write)(void *dev_ops_priv, int fd, const void *buffer, size_t n); 20 | + void * (*mmap)(void *dev_ops_priv, void *start, size_t length, int prot, 21 | + int flags, int fd, int64_t offset); 22 | /* For future plugin API extension, plugins implementing the current API 23 | must set these all to NULL, as future versions may check for these */ 24 | void (*reserved1)(void); 25 | diff --git a/lib/libv4l2/libv4l2.c b/lib/libv4l2/libv4l2.c 26 | index 2db25d1..21e6f05 100644 27 | --- a/lib/libv4l2/libv4l2.c 28 | +++ b/lib/libv4l2/libv4l2.c 29 | @@ -1627,6 +1627,16 @@ void *v4l2_mmap(void *start, size_t length, int prot, int flags, int fd, 30 | void *result; 31 | 32 | index = v4l2_get_index(fd); 33 | + if (index != -1 && devices[index].dev_ops->mmap) { 34 | + pthread_mutex_lock(&devices[index].stream_lock); 35 | + result = devices[index].dev_ops->mmap( 36 | + devices[index].dev_ops_priv, start, 37 | + length, prot, flags, fd, offset); 38 | + 39 | + pthread_mutex_unlock(&devices[index].stream_lock); 40 | + return result; 41 | + } 42 | + 43 | if (index == -1 || 44 | /* Check if the mmap data matches our answer to QUERY_BUF. If it doesn't, 45 | let the kernel handle it (to allow for mmap-based non capture use) */ 46 | -- 47 | 2.11.0 48 | 49 | -------------------------------------------------------------------------------- /rock5b/archive/v4l-utils-mmap/0002-Convert-deprecated-libbpf-API.patch: -------------------------------------------------------------------------------- 1 | diff --git a/utils/keytable/bpf_load.c b/utils/keytable/bpf_load.c 2 | index 7c633dac..06098fc3 100644 3 | --- a/utils/keytable/bpf_load.c 4 | +++ b/utils/keytable/bpf_load.c 5 | @@ -63,19 +63,17 @@ struct bpf_file { 6 | 7 | static int load_and_attach(int lirc_fd, struct bpf_file *bpf_file, struct bpf_insn *prog, int size) 8 | { 9 | - struct bpf_load_program_attr load_attr; 10 | - int fd, err; 11 | + LIBBPF_OPTS(bpf_prog_load_opts, opts); 12 | + int fd, err, insn_cnt; 13 | 14 | - memset(&load_attr, 0, sizeof(struct bpf_load_program_attr)); 15 | + insn_cnt = size / sizeof(struct bpf_insn); 16 | 17 | - load_attr.prog_type = BPF_PROG_TYPE_LIRC_MODE2; 18 | - load_attr.expected_attach_type = BPF_LIRC_MODE2; 19 | - load_attr.name = bpf_file->name; 20 | - load_attr.insns = prog; 21 | - load_attr.insns_cnt = size / sizeof(struct bpf_insn); 22 | - load_attr.license = bpf_file->license; 23 | + opts.expected_attach_type = BPF_LIRC_MODE2; 24 | + opts.log_buf = bpf_log_buf; 25 | + opts.log_size = LOG_BUF_SIZE; 26 | 27 | - fd = bpf_load_program_xattr(&load_attr, bpf_log_buf, LOG_BUF_SIZE); 28 | + fd = bpf_prog_load(BPF_PROG_TYPE_LIRC_MODE2, bpf_file->name, 29 | + bpf_file->license, prog, insn_cnt, &opts); 30 | if (fd < 0) { 31 | printf("bpf_load_program() err=%m\n%s", bpf_log_buf); 32 | return -1; 33 | @@ -95,6 +93,9 @@ static int build_raw_map(struct bpf_map_data *map, struct raw_entry *raw, int nu 34 | int no_patterns, value_size, fd, key, i; 35 | struct raw_entry *e; 36 | struct raw_pattern *p; 37 | + LIBBPF_OPTS(bpf_map_create_opts, opts, 38 | + .map_flags = map->def.map_flags, 39 | + ); 40 | 41 | no_patterns = 0; 42 | 43 | @@ -110,14 +111,13 @@ static int build_raw_map(struct bpf_map_data *map, struct raw_entry *raw, int nu 44 | 45 | value_size = sizeof(struct raw_pattern) + max_length * sizeof(short); 46 | 47 | - fd = bpf_create_map_node(map->def.type, 48 | - map->name, 49 | - map->def.key_size, 50 | - value_size, 51 | - no_patterns, 52 | - map->def.map_flags, 53 | - numa_node); 54 | - 55 | + opts.numa_node = numa_node; 56 | + fd = bpf_map_create(map->def.type, 57 | + map->name, 58 | + map->def.key_size, 59 | + value_size, 60 | + no_patterns, 61 | + &opts); 62 | if (fd < 0) { 63 | printf(_("failed to create a map: %d %s\n"), 64 | errno, strerror(errno)); 65 | @@ -174,27 +174,34 @@ static int load_maps(struct bpf_file *bpf_file, struct raw_entry *raw) 66 | 67 | if (maps[i].def.type == BPF_MAP_TYPE_ARRAY_OF_MAPS || 68 | maps[i].def.type == BPF_MAP_TYPE_HASH_OF_MAPS) { 69 | - int inner_map_fd = bpf_file->map_fd[maps[i].def.inner_map_idx]; 70 | + LIBBPF_OPTS(bpf_map_create_opts, opts, 71 | + .inner_map_fd = bpf_file->map_fd[maps[i].def.inner_map_idx], 72 | + .map_flags = maps[i].def.map_flags, 73 | + .numa_node = numa_node, 74 | + ); 75 | 76 | - bpf_file->map_fd[i] = bpf_create_map_in_map_node( 77 | + bpf_file->map_fd[i] = bpf_map_create( 78 | maps[i].def.type, 79 | maps[i].name, 80 | maps[i].def.key_size, 81 | - inner_map_fd, 82 | + 4, 83 | maps[i].def.max_entries, 84 | - maps[i].def.map_flags, 85 | - numa_node); 86 | + &opts); 87 | } else if (!strcmp(maps[i].name, "raw_map")) { 88 | bpf_file->map_fd[i] = build_raw_map(&maps[i], raw, numa_node); 89 | } else { 90 | - bpf_file->map_fd[i] = bpf_create_map_node( 91 | + LIBBPF_OPTS(bpf_map_create_opts, opts, 92 | + .map_flags = maps[i].def.map_flags, 93 | + .numa_node = numa_node, 94 | + ); 95 | + 96 | + bpf_file->map_fd[i] = bpf_map_create( 97 | maps[i].def.type, 98 | maps[i].name, 99 | maps[i].def.key_size, 100 | maps[i].def.value_size, 101 | maps[i].def.max_entries, 102 | - maps[i].def.map_flags, 103 | - numa_node); 104 | + &opts); 105 | } 106 | 107 | if (bpf_file->map_fd[i] < 0) { -------------------------------------------------------------------------------- /rock5b/archive/v4l-utils-mmap/PKGBUILD: -------------------------------------------------------------------------------- 1 | _origpkg="v4l-utils" 2 | pkgname="${_origpkg}-mmap" 3 | pkgver=1.22.1 4 | pkgrel=1 5 | pkgdesc="Userspace tools and conversion library for Video 4 Linux" 6 | arch=('aarch64') 7 | url="https://linuxtv.org/" 8 | provides=("libv4l=$pkgver") 9 | replaces=('libv4l') 10 | conflicts=('libv4l') 11 | backup=(etc/rc_maps.cfg) 12 | license=('LGPL') 13 | options=('!distcc') 14 | makedepends=('qt5-base' 'alsa-lib' 'coreutils') 15 | optdepends=('qt5-base: for qv4l2' 'alsa-lib: for qv4l2') 16 | depends=('hicolor-icon-theme' 'gcc-libs' 'sysfsutils' 'libjpeg-turbo') 17 | source=(https://linuxtv.org/downloads/v4l-utils/${_origpkg}-${pkgver}.tar.bz2 18 | '0001-libv4l2-Support-mmap-to-libv4l-plugin.patch' 19 | '0002-Convert-deprecated-libbpf-API.patch') 20 | sha256sums=('65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31' 21 | 'SKIP' 22 | 'SKIP') 23 | validpgpkeys=('05D0169C26E41593418129DF199A64FADFB500FF') # Gregor Jasny 24 | 25 | prepare() { 26 | cd "${srcdir}/${_origpkg}-${pkgver}" 27 | patch -Np1 -i ../0001-libv4l2-Support-mmap-to-libv4l-plugin.patch 28 | patch -Np1 -i ../0002-Convert-deprecated-libbpf-API.patch 29 | } 30 | 31 | build() { 32 | cd "${srcdir}/${_origpkg}-${pkgver}" 33 | ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin 34 | make -j$(nproc) 35 | } 36 | 37 | package() { 38 | provides=($pkgname $_origpkg) 39 | conflicts=($pkgname $_origpkg) 40 | cd "${srcdir}/${_origpkg}-${pkgver}" 41 | MAKEFLAGS="-j1" make install DESTDIR="${pkgdir}/" 42 | rm "${pkgdir}/usr/bin/ivtv-ctl" 43 | } 44 | -------------------------------------------------------------------------------- /rock5b/linux-rk3588-midstream/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | linux-rockchip-midstream-git 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /rock5b/linux-rk3588-midstream/PKGBUILD: -------------------------------------------------------------------------------- 1 | # AArch64 multi-platform 2 | # Maintainer: Mahmut Dikcizgi 3 | # Contributor: Kevin Mihelich 4 | 5 | _pkgver=6.2 6 | _user="Googulator" 7 | _kernel=linux-rk3588-midstream 8 | pkgbase=$_kernel-git 9 | pkgname=("${pkgbase}-headers" $pkgbase) 10 | pkgver=1153621.f563c09394db 11 | pkgrel=1 12 | arch=('aarch64') 13 | license=('GPL2') 14 | url="https://github.com/${_user}" 15 | _kernelrepo=$_kernel 16 | _kernelbranch="pancsf-midstream" 17 | pkgdesc="Latest git Linux kernel package for rk3588 mid-ported to mainline" 18 | makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'git' 'uboot-tools' 'vboot-utils' 'dtc') 19 | options=('!strip') 20 | 21 | source=(git+https://github.com/$_user/$_kernelrepo.git#branch=$_kernelbranch 22 | 'linux.preset' 23 | 'extlinux.arch.template') 24 | b2sums=('SKIP' 25 | 'bd296f775df973c6dcb6bd8311ce4d3af9a8d4a67905f17c450cae776aab0229987d473334d38fd102a34ed483a121f67ac58a48fd9e6fab2c714c7079e06613' 26 | '47ceb511b1631c55e8cd4ba840f34be4cfe3214194f23d9f71d7c5336f8f9ff9bc3fc8c052428cfc31f55bb25fb4565baf5eca791f341895f357d22e137c6e51') 27 | 28 | pkgver(){ 29 | cd $_kernel 30 | local _kcommits="$(git rev-list --count HEAD)" 31 | local _kcommit="$(git rev-parse --short HEAD)" 32 | 33 | local _version="${_kcommits}.${_kcommit}" 34 | echo $_version > pkgver 35 | printf $_version 36 | } 37 | 38 | prepare() { 39 | cd $_kernel 40 | for p in ../*.patch; do 41 | echo "Patching with ${p}" 42 | patch -p1 -N -i $p || true 43 | done 44 | 45 | # this is only for local builds so there is no need to integrity check 46 | for p in ../../custom/*.patch; do 47 | echo "Custom Patching with ${p}" 48 | patch -p1 -N -i $p || true 49 | done 50 | 51 | if [ -f ../../custom/config ]; then 52 | echo "Using User Specific Config" 53 | cp -f ../../custom/config ./.config 54 | else 55 | cp -f arch/arm64/configs/rock-5b.config ./.config 56 | fi 57 | 58 | # fix distcc build which does not support gcc plugins 59 | sed -i 's/CONFIG_GCC_PLUGINS=y/CONFIG_GCC_PLUGINS=n/g' .config 60 | } 61 | 62 | build() { 63 | cd $_kernel 64 | 65 | local _version="$( .scmversion 70 | # should result in kernelmaj.kernelmin.patchver-totalcommitnum-hashofkernel-hashofoverlays-radxa-rkbsp 71 | 72 | make -j$(nproc) olddefconfig prepare 73 | make -s kernelrelease > version 74 | unset LDFLAGS 75 | make -j$(nproc) ${MAKEFLAGS} Image modules 76 | make -j$(nproc) ${MAKEFLAGS} DTC_FLAGS="-@" dtbs 77 | } 78 | 79 | _package-git() { 80 | pkgdesc="Latest git Linux kernel package for rk3588 mid-ported to mainline" 81 | depends=('coreutils' 'kmod' 'mkinitcpio>=0.7') 82 | optdepends=('wireless-regdb: to set the correct wireless channels of your country') 83 | provides=("linux=${pkgver}" $_kernel) 84 | conflicts=('linux' $_kernel) 85 | backup=("etc/mkinitcpio.d/${_kernel}.preset") 86 | 87 | cd $_kernel 88 | 89 | local _version="$( 2 | # Contributor: Laurent Carlier 3 | # Contributor: Felix Yan 4 | # Contributor: Jan de Groot 5 | # Contributor: Andreas Radke 6 | # Contributor: Dan Johansen 7 | 8 | # ALARM: Kevin Mihelich 9 | # - Removed Gallium3D drivers/packages for chipsets that don't exist in our ARM devices (intel, VMware svga). 10 | # - added broadcom and panfrost vulkan packages 11 | # - enable lto for aarch64 12 | 13 | highmem=1 14 | 15 | pkgbase=mesa-pancsf-git 16 | pkgname=('vulkan-mesa-layers-pancsf-git' 'opencl-mesa-pancsf-git' 'vulkan-swrast-pancsf-git' 'libva-mesa-driver-pancsf-git' 'mesa-vdpau-pancsf-git' 'mesa-pancsf-git') 17 | pkgdesc="Mesa with Pancsf that supports Mali G610/G710 GPUs (Valhall v10 CSF)" 18 | pkgver=r164612.cbe80448ccb 19 | pkgrel=1 20 | arch=('aarch64' 'arm7vh') 21 | makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm' 22 | 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'zstd' 'elfutils' 'llvm' 23 | 'libomxil-bellagio' 'libclc' 'clang' 'libglvnd' 'libunwind' 'lm_sensors' 'libxrandr' 24 | 'systemd' 'valgrind' 'glslang' 'vulkan-icd-loader' 'directx-headers' 'cmake' 'meson') 25 | url="https://www.mesa3d.org/" 26 | license=('custom') 27 | options=('debug' '!lto') 28 | source=(mesa::git+https://gitlab.freedesktop.org/panfrost/mesa.git#branch=panfrost/v10-wip 29 | LICENSE) 30 | sha512sums=('SKIP' 31 | 'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7') 32 | validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov 33 | '946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez 34 | 'E3E8F480C52ADD73B278EE78E1ECBE07D7D70895' # Juan Antonio Suárez Romero (Igalia, S.L.) 35 | 'A5CC9FEC93F2F837CB044912336909B6B25FADFA' # Juan A. Suarez Romero 36 | '71C4B75620BC75708B4BDB254C95FAAB3EB073EC' # Dylan Baker 37 | '57551DE15B968F6341C248F68D8E31AFC32428A6') # Eric Engestrom 38 | 39 | pkgver() { 40 | cd mesa 41 | ( set -o pipefail 42 | git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' || 43 | printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" 44 | ) 45 | } 46 | 47 | 48 | build() { 49 | arch-meson mesa build \ 50 | -D b_ndebug=true \ 51 | -D b_lto=false \ 52 | -D platforms=x11,wayland \ 53 | -D gallium-drivers=r300,r600,radeonsi,nouveau,swrast,virgl,kmsro,panfrost \ 54 | -D vulkan-drivers=swrast \ 55 | -D vulkan-layers=device-select,overlay \ 56 | -D dri3=enabled \ 57 | -D egl=enabled \ 58 | -D gallium-extra-hud=true \ 59 | -D gallium-nine=true \ 60 | -D gallium-omx=bellagio \ 61 | -D gallium-opencl=icd \ 62 | -D gallium-va=enabled \ 63 | -D gallium-vdpau=enabled \ 64 | -D gallium-xa=disabled \ 65 | -D gbm=enabled \ 66 | -D gles1=disabled \ 67 | -D gles2=enabled \ 68 | -D glvnd=true \ 69 | -D glx=dri \ 70 | -D libunwind=disabled \ 71 | -D llvm=enabled \ 72 | -D lmsensors=enabled \ 73 | -D osmesa=true \ 74 | -D shared-glapi=enabled \ 75 | -D microsoft-clc=disabled \ 76 | -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \ 77 | -D valgrind=enabled \ 78 | -D android-libbacktrace=disabled 79 | 80 | # Print config 81 | meson configure build --no-pager 82 | 83 | ninja -C build 84 | meson compile -C build 85 | 86 | # fake installation to be seperated into packages 87 | # outside of fakeroot but mesa doesn't need to chown/mod 88 | DESTDIR="${srcdir}/fakeinstall" meson install -C build 89 | } 90 | 91 | _install() { 92 | local src f dir 93 | for src; do 94 | f="${src#fakeinstall/}" 95 | dir="${pkgdir}/${f%/*}" 96 | install -m755 -d "${dir}" 97 | mv -v "${src}" "${dir}/" 98 | done 99 | } 100 | 101 | package_vulkan-mesa-layers-pancsf-git() { 102 | pkgdesc="Mesa's Vulkan layers - Panfork" 103 | depends=('libdrm' 'libxcb' 'wayland' 'python') 104 | conflicts=('vulkan-mesa-layer' 'vulkan-mesa-layers') 105 | provides=('vulkan-mesa-layers') 106 | replaces=('vulkan-mesa-layer') 107 | 108 | _install fakeinstall/usr/share/vulkan/explicit_layer.d 109 | _install fakeinstall/usr/share/vulkan/implicit_layer.d 110 | _install fakeinstall/usr/lib/libVkLayer_*.so 111 | _install fakeinstall/usr/bin/mesa-overlay-control.py 112 | 113 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE 114 | } 115 | 116 | package_opencl-mesa-pancsf-git() { 117 | pkgdesc="OpenCL support for AMD/ATI Radeon mesa drivers - Panfork" 118 | depends=('libdrm' 'libclc' 'clang' 'expat') 119 | optdepends=('opencl-headers: headers necessary for OpenCL development') 120 | conflicts=('opencl-mesa') 121 | provides=('opencl-driver' 'opencl-mesa') 122 | 123 | _install fakeinstall/etc/OpenCL 124 | _install fakeinstall/usr/lib/lib*OpenCL* 125 | _install fakeinstall/usr/lib/gallium-pipe 126 | 127 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE 128 | } 129 | 130 | package_vulkan-swrast-pancsf-git() { 131 | pkgdesc="Vulkan software rasteriser driver - Panfork" 132 | depends=('wayland' 'libx11' 'libxshmfence' 'libdrm' 'zstd' 'llvm-libs') 133 | optdepends=('vulkan-mesa-layers: additional vulkan layers') 134 | conflicts=('vulkan-mesa' 'vulkan-swrast') 135 | replaces=('vulkan-mesa') 136 | provides=('vulkan-driver' 'vulkan-swrast') 137 | 138 | _install fakeinstall/usr/share/vulkan/icd.d/lvp_icd*.json 139 | _install fakeinstall/usr/lib/libvulkan_lvp.so 140 | 141 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE 142 | } 143 | 144 | package_libva-mesa-driver-pancsf-git() { 145 | pkgdesc="VA-API implementation for gallium - Panfork" 146 | depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence') 147 | depends+=('libexpat.so') 148 | conflicts=('libva-mesa-driver') 149 | provides=('libva-mesa-driver') 150 | 151 | _install fakeinstall/usr/lib/dri/*_drv_video.so 152 | 153 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE 154 | } 155 | 156 | package_mesa-vdpau-pancsf-git() { 157 | pkgdesc="Mesa VDPAU drivers - Panfork" 158 | depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence') 159 | depends+=('libexpat.so') 160 | conflicts=('mesa-vdpau') 161 | provides=('mesa-vdpau') 162 | 163 | 164 | _install fakeinstall/usr/lib/vdpau 165 | 166 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE 167 | } 168 | 169 | package_mesa-pancsf-git() { 170 | depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' 171 | 'libomxil-bellagio' 'libunwind' 'llvm-libs' 'lm_sensors' 'libglvnd' 172 | 'zstd' 'vulkan-icd-loader') 173 | depends+=('libsensors.so' 'libexpat.so' 'libvulkan.so') 174 | optdepends=('opengl-man-pages: for the OpenGL API man pages' 175 | 'mesa-vdpau: for accelerated video playback' 176 | 'libva-mesa-driver: for accelerated video playback') 177 | provides=('mesa-libgl' 'opengl-driver' 'mesa') 178 | conflicts=('mesa-libgl' 'mesa') 179 | replaces=('mesa-libgl') 180 | 181 | _install fakeinstall/usr/share/drirc.d/00-mesa-defaults.conf 182 | _install fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json 183 | 184 | # ati-dri, nouveau-dri, intel-dri, svga-dri, swrast, swr 185 | _install fakeinstall/usr/lib/dri/*_dri.so 186 | 187 | _install fakeinstall/usr/lib/bellagio 188 | _install fakeinstall/usr/lib/d3d 189 | _install fakeinstall/usr/lib/lib{gbm,glapi}.so* 190 | _install fakeinstall/usr/lib/libOSMesa.so* 191 | 192 | _install fakeinstall/usr/include 193 | rm -f fakeinstall/usr/lib/pkgconfig/{egl,gl}.pc 194 | _install fakeinstall/usr/lib/pkgconfig 195 | 196 | # libglvnd support 197 | _install fakeinstall/usr/lib/libGLX_mesa.so* 198 | _install fakeinstall/usr/lib/libEGL_mesa.so* 199 | 200 | # indirect rendering 201 | ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/libGLX_indirect.so.0" 202 | 203 | # make sure there are no files left to install 204 | find fakeinstall -depth -print0 | xargs -0 rmdir 205 | 206 | install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE 207 | } 208 | -------------------------------------------------------------------------------- /rock5b/unified-remote-server/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: AudioLinux 2 | # Contributor: peace4all 3 | 4 | pkgname=unified-remote-server 5 | pkgver=3.13.0.2505 6 | build=2505 7 | pkgrel=1 8 | pkgdesc="Unified Remote Server" 9 | arch=('x86_64' 'aarch64') 10 | url="http://www.unifiedremote.com/" 11 | depends=('glibc' 'gcc-libs') 12 | license=('freeware') 13 | install=$pkgname.install 14 | 15 | case $(uname -m) in 16 | "x86_64") 17 | _arch=x64;; 18 | "aarch64") 19 | _arch=arm64;; 20 | esac 21 | source=("https://www.unifiedremote.com/static/builds/server/linux-$_arch/$build/urserver-$pkgver.deb" 22 | "urserver.service" 23 | "meta.prop" 24 | "remote.lua") 25 | sha256sums=('SKIP' 26 | '1a19c0c8da26ba963cda8ccd13bbb19e5fd3bd2cfff797e2e2f688c60e1a2e6c' 27 | '4bac099a0eed996d44ea253fdad855ed71ae7ea1012b06f0ae2ea8f630e69225' 28 | '27ad4788c50798ac8bf9f951ab7eca4559f0f3f6cf70775904c5832bff125e5b') 29 | 30 | package() { 31 | cd ${srcdir} 32 | 33 | # decompress data 34 | tar xvf data.tar.xz 35 | 36 | # install folders 37 | mkdir -p ${pkgdir}/{opt,usr} 38 | cp -r {opt,usr} "${pkgdir}/" 39 | 40 | # add remote input where clicking works 41 | mkdir -p "${pkgdir}/opt/urserver/remotes/Unified/Custom/Remote Input" 42 | cp -r "${pkgdir}/opt/urserver/remotes/Unified/Main/Basic Input/" "${pkgdir}/opt/urserver/remotes/Unified/Custom/Remote Input" 43 | install -Dm644 remote.lua "${pkgdir}/opt/urserver/remotes/Unified/Custom/Remote Input/" 44 | install -Dm644 meta.prop "${pkgdir}/opt/urserver/remotes/Unified/Custom/Remote Input/" 45 | 46 | # clean up permissions 47 | find "${pkgdir}" -type d | xargs -I {} chmod -R 755 "{}" 48 | find "${pkgdir}" -type f | xargs -I {} chmod -R 644 "{}" 49 | chmod 755 "${pkgdir}/opt/urserver/urserver" 50 | chmod 755 "${pkgdir}/opt/urserver/urserver-start" 51 | chmod 755 "${pkgdir}/opt/urserver/urserver-stop" 52 | 53 | # add systemd service 54 | install -Dm644 "urserver.service" "$pkgdir/usr/lib/systemd/system/urserver.service" 55 | } 56 | 57 | -------------------------------------------------------------------------------- /rock5b/unified-remote-server/meta.prop: -------------------------------------------------------------------------------- 1 | meta.id: Remote Input 2 | meta.name: Remote Input 3 | meta.author: Boogie 4 | meta.description: Control mouse and keyboard remotely. 5 | meta.tags.category: input 6 | -------------------------------------------------------------------------------- /rock5b/unified-remote-server/remote.lua: -------------------------------------------------------------------------------- 1 | 2 | dragging = false; 3 | 4 | local mouse = libs.mouse; 5 | 6 | function update (r) 7 | --server.update({id = "touch", text = r }); 8 | end 9 | 10 | actions.down = function () 11 | update("down"); 12 | end 13 | 14 | actions.up = function () 15 | update("up"); 16 | end 17 | 18 | actions.tap = function () 19 | update("tap"); 20 | if (dragging) then 21 | dragging = false; 22 | mouse.dragend(); 23 | mouse.up(); 24 | else 25 | mouse.down(); 26 | mouse.up(); 27 | end 28 | end 29 | 30 | actions.double = function () 31 | update("double"); 32 | mouse.double("left"); 33 | end 34 | 35 | actions.hold = function () 36 | update("hold"); 37 | mouse.down(); 38 | mouse.dragbegin(); 39 | dragging = true; 40 | end 41 | 42 | actions.delta = function (id, x, y) 43 | update("delta: " .. x .. " " .. y); 44 | mouse.moveraw(x, y); 45 | end 46 | 47 | actions.left = function () 48 | mouse.down(); 49 | mouse.up(); 50 | end 51 | 52 | actions.right = function () 53 | mouse.down("right"); 54 | mouse.up("right"); 55 | end 56 | -------------------------------------------------------------------------------- /rock5b/unified-remote-server/unified-remote-server.install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor 3 | echo " 4 | The simplest way to start the server is: 5 | /opt/urserver/urserver --daemon 6 | 7 | add the above line to a startup script etc. 8 | 9 | There is also a user systemd serice available. 10 | You can start it with 11 | systemctl --user start urserver 12 | You can enable at boot with 13 | systemctl --user enable urserver 14 | (Note: A one time call (as user) to 15 | /opt/urserver/urserver-start 16 | could be necessary before using it) 17 | 18 | For more options: 19 | /opt/urserver/urserver --help 20 | 21 | See link for port configurations: 22 | http://wiki.unifiedremote.com/wiki/Configuration:Routers_and_Ports 23 | 24 | Configure server from a browser: 25 | localhost:9510/web" 26 | } 27 | 28 | post_upgrade() { 29 | post_install 30 | } 31 | 32 | post_remove() { 33 | gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor 34 | } 35 | -------------------------------------------------------------------------------- /rock5b/unified-remote-server/urserver.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Unified Remote Server 3 | After=network.target 4 | 5 | [Service] 6 | Type=forking 7 | ExecStart=/opt/urserver/urserver --daemon 8 | 9 | [Install] 10 | WantedBy=default.target 11 | 12 | -------------------------------------------------------------------------------- /swd/rk3066.cfg: -------------------------------------------------------------------------------- 1 | # Rockchip RK3308 Target 2 | # https://rockchip.fr/RK3308%20datasheet%20V1.5.pdf 3 | # https://dl.radxa.com/rockpis/docs/hw/datasheets/Rockchip%20RK3308TRM%20V1.1%20Part1-20180810.pdf 4 | 5 | if { [info exists CHIPNAME] } { 6 | set _CHIPNAME $CHIPNAME 7 | } else { 8 | set _CHIPNAME rk3066 9 | } 10 | 11 | # 12 | # Main DAP 13 | # 14 | if { [info exists DAP_TAPID] } { 15 | set _DAP_TAPID $DAP_TAPID 16 | } else { 17 | set _DAP_TAPID 0x14770002 18 | } 19 | 20 | adapter speed 12000 21 | 22 | transport select swd 23 | 24 | # declare the one SWD tap to access the DAP 25 | swd newdap $_CHIPNAME cpu -expected-id $_DAP_TAPID -ignore-version 26 | 27 | # create the DAP 28 | dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu 29 | target create $_CHIPNAME.ahb mem_ap -dap $_CHIPNAME.dap -ap-num 0 30 | 31 | # declare the 4 main application cores 32 | set _TARGETNAME $_CHIPNAME.core 33 | set _smp_command "" 34 | 35 | set $_TARGETNAME.base(0) 0x1ffe4000 36 | set $_TARGETNAME.base(1) 0x1ff20000 37 | 38 | set $_TARGETNAME.cti(0) 0x1fff8000 39 | set $_TARGETNAME.cti(1) 0x1fff9000 40 | 41 | set _cores 2 42 | for { set _core 0 } { $_core < $_cores } { incr _core 1 } { 43 | 44 | cti create cti$_core -dap $_CHIPNAME.dap -baseaddr [set $_TARGETNAME.cti($_core)] -ap-num 1 45 | 46 | target create ${_TARGETNAME}$_core cortex_a \ 47 | -dap $_CHIPNAME.dap -coreid $_core -cti cti$_core \ 48 | -dbgbase [set $_TARGETNAME.base($_core)] 49 | 50 | if { $_core != 0 } { 51 | ${_TARGETNAME}$_core configure -defer-examine 52 | } else { 53 | # uncomment to use hardware threads pseudo rtos 54 | # ${_TARGETNAME}$_core configure -rtos hwthread" 55 | ${_TARGETNAME}$_core configure -work-area-size 0x30000 -work-area-phys 0xff8c0000 \ 56 | -work-area-backup 0 57 | } 58 | set _smp_command "$_smp_command ${_TARGETNAME}$_core" 59 | } 60 | 61 | target smp $_smp_command 62 | --------------------------------------------------------------------------------