-
Posts
311 -
Joined
-
Last visited
Content Type
Forums
Store
Crowdfunding
Applications
Events
Raffles
Community Map
Everything posted by Nick A
-
I have been looking at the code and there's been a lot of changes between H3/H5 and H616/H618 SOC's. H616/H618 now has a TVE_TOP register. H616/H618 uses the first DAC and moved the DAC MAP to TVE_TOP. https://linux-sunxi.org/images/2/24/H616_User_Manual_V1.0_cleaned.pdf Module Name Base Address TVE_TOP 0x06520000 TVE 0x06524000 Register Name Offset Description TVE_DAC_MAP 0x0020 TV Encoder DAC MAP Register TVE_DAC_STATUS 0x0024 TV Encoder DAC STAUTS Register TVE_DAC_CFG0 0x0028 TV Encoder DAC CFG0 Register TVE_DAC_CFG1 0x002C TV Encoder DAC CFG1 Register TVE_DAC_CFG2 0x0030 TV Encoder DAC CFG2 Register TVE_DAC_CFG3 0x0034 TV Encoder DAC CFG2 Register TVE_DAC_TEST 0x00F0 TV Encoder DAC TEST Register H3/H5 TV Encoder Enable Register use to handle the DAC mapping. If you look at the two pdf's you can see the changes. https://linux-sunxi.org/images/1/1e/Allwinner_A10_User_manual_V1.5.pdf Module Name Base Address TVE 0x01C0A000 Register Name Offset Description TVE_000_REG 0x0000 TV Encoder Enable Register We need to modify the kernel TVE driver. https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/sun4i/sun4i_tv.c #define SUN4I_TVE_TOP_DAC_MAP 0x020 #define SUN4I_TVE_TOP_EN_DAC_MAP_MASK GENMASK(6, 4) #define SUN4I_TVE_TOP_EN_DAC_MAP(dac, out) (((out) & 0xf) << (dac + 1) * 4) #define SUN4I_TVE_TOP_DAC_TEST 0x0F0 if (tv->quirks->hastvtop) { /* Enable and map the DAC to the output */ regmap_update_bits(tv->top_regs, SUN4I_TVE_TOP_DAC_MAP, SUN4I_TVE_TOP_EN_DAC_MAP_MASK, SUN4I_TVE_TOP_EN_DAC_MAP(0, 1) | SUN4I_TVE_TOP_EN_DAC_MAP(1, 2) | SUN4I_TVE_TOP_EN_DAC_MAP(2, 3) | SUN4I_TVE_TOP_EN_DAC_MAP(3, 4)); } else { /* Enable and map the DAC to the output */ regmap_update_bits(tv->regs, SUN4I_TVE_EN_REG, SUN4I_TVE_EN_DAC_MAP_MASK, SUN4I_TVE_EN_DAC_MAP(0, 1) | SUN4I_TVE_EN_DAC_MAP(1, 2) | SUN4I_TVE_EN_DAC_MAP(2, 3) | SUN4I_TVE_EN_DAC_MAP(3, 4)); } I still need to modify this part... /* Configure the DAC for a composite output */ regmap_write(tv->regs, SUN4I_TVE_DAC0_REG, SUN4I_TVE_DAC0_DAC_EN(0) | (tv_mode->dac3_en ? SUN4I_TVE_DAC0_DAC_EN(3) : 0) | SUN4I_TVE_DAC0_INTERNAL_DAC_37_5_OHMS | SUN4I_TVE_DAC0_CHROMA_0_75 | SUN4I_TVE_DAC0_LUMA_0_4 | SUN4I_TVE_DAC0_CLOCK_INVERT | (tv_mode->dac_bit25_en ? BIT(25) : 0) | BIT(30)); To access the TVE_TOP DAC MAP Register we need to first enable the TVE_TOP clocks. (in function sun4i_tv_bind()) static const struct regmap_config sun4i_tv_top_regmap_config = { .reg_bits = 32, .val_bits = 32, .reg_stride = 4, .max_register = SUN4I_TVE_TOP_DAC_TEST, .name = "tv-top", }; /* tve top */ if (tv->quirks->hastvtop) { top_regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(top_regs)) { dev_err(dev, "Couldn't map the TV TOP registers\n"); return PTR_ERR(top_regs); } tv->top_regs = devm_regmap_init_mmio(dev, top_regs, &sun4i_tv_top_regmap_config); if (IS_ERR(tv->top_regs)) { dev_err(dev, "Couldn't create the TV TOP regmap\n"); return PTR_ERR(tv->top_regs); } tv->top_reset = devm_reset_control_get(dev, "rst_bus_tve_top"); if (IS_ERR(tv->top_reset)) { dev_err(dev, "Couldn't get our reset line\n"); return PTR_ERR(tv->top_reset); } ret = reset_control_deassert(tv->top_reset); if (ret) { dev_err(dev, "Couldn't deassert our reset line\n"); return ret; } tv->top_clk = devm_clk_get(dev, "clk_bus_tve_top"); if (IS_ERR(tv->top_clk)) { dev_err(dev, "Couldn't get the TV TOP clock\n"); ret = PTR_ERR(tv->top_clk); goto err_assert_reset; } clk_prepare_enable(tv->top_clk); } This is from the H616 user manual. Figure 7- 10. DAC Calibration 10-bit calibration value is burned into efuse. Every time software can read the 10-bit calibration value from efuse, to control BIAS current and BIAS current switch, then a specific BIAS current is generated to calibrate maximum output voltage of DAC. We need to extract the DAC calibration value (tvout 32) from SID. https://linux-sunxi.org/SID_Register_Guide hexdump -C /sys/bus/nvmem/devices/sunxi-sid0/nvmem H6 Name Offset Size Description CHIPID 0x00 128 bit Chip-ID, also known as SID BROM_CONFIG 0x10 32 bit unknown, "16 bits config, 16 bits try" THERMAL_SENSOR 0x14 64 bit Thermal sensor calibration data TF_ZONE 0x1c 128 bit unknown, probably reserved for Trusted Firmware OEM_PROGRAM 0x2c 160 bit unknown, "emac 16 + tvout 32 + reserv 112" Add quirks for h616. Not sure if .unknown is needed?? static const struct sun4i_tv_quirks h616_quirks = { .calibration = 0x?????????????, .unknown = 1, .hastvtop = true, }; static const struct of_device_id sun4i_tv_of_table[] = { { .compatible = "allwinner,sun4i-a10-tv-encoder", .data = &a10_quirks }, { .compatible = "allwinner,sun8i-h3-tv-encoder", .data = &h3_quirks }, { .compatible = "allwinner,sun50i-h5-tv-encoder", .data = &h5_quirks }, { .compatible = "allwinner,sun50i-h616-tv-encoder", .data = &h616_quirks }, { /* sentinel */ }, }; The dtsi might look similar to this. Not sure if it's correct. I think we need to add <&ccu CLK_TVE> to tcon_tv0 clocks. tcon_tv0: lcd-controller@6515000 { compatible = "allwinner,sun50i-h6-tcon-tv", "allwinner,sun8i-r40-tcon-tv"; reg = <0x06515000 0x1000>; interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_TCON_TV0>, <&tcon_top CLK_TCON_TOP_TV0>; clock-names = "ahb", "tcon-ch1"; resets = <&ccu RST_BUS_TCON_TV0>; reset-names = "lcd"; ports { #address-cells = <1>; #size-cells = <0>; tcon_tv0_in: port@0 { reg = <0>; tcon_tv0_in_tcon_top_mixer0: endpoint@0 { reg = <0>; remote-endpoint = <&tcon_top_mixer0_out_tcon_tv0>; }; }; tcon_tv0_out: port@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; tcon_tv0_out_tve: endpoint@0 { reg = <0>; remote-endpoint = <&tve_in_tcon_tv0>; }; tcon_tv0_out_tcon_top: endpoint@1 { reg = <1>; remote-endpoint = <&tcon_top_hdmi_in_tcon_tv0>; }; }; }; }; tve: tv-encoder@6520000 { compatible = "allwinner,sun50i-h616-tv-encoder"; reg = <0x06520000 0x100>, <0x06524000 0x3fc>; clocks =<&ccu CLK_BUS_TVE_TOP>, <&ccu CLK_BUS_TVE0>; clock-names = "clk_bus_tve_top", "clk_bus_tve"; resets = <&ccu RST_BUS_TVE_TOP>, <&ccu RST_BUS_TVE0>; reset-names = "rst_bus_tve_top", "rst_bus_tve"; status = "disabled"; port { tve_in_tcon_tv0: endpoint { remote-endpoint = <&tcon_tv0_out_tve>; }; }; }; I haven't looked into the mixer1 part of the patch. Not sure if H616/H618 has one. I can't find the base address in the H616 user manual. BSP kernel code that might help us. https://github.com/AvaotaSBC/linux/tree/main/bsp/drivers/video/sunxi/disp2/tv https://github.com/AvaotaSBC/linux/tree/main/bsp/drivers/video/sunxi/disp2/disp/de
-
This patch is in all my builds. For orangepiezero3 I would use my main branch. I haven't test the other branches with zero3. If you are using my main branch, you can disable any patch by adding (-) infront of the patch list files series.armbian and series.conf located in https://github.com/NickAlilovic/build/tree/main/patch/kernel/archive/sunxi-6.7
-
This patch is a problem for ffmpeg7.1 v4l2_request miniarch 6.11 kernel "disable cedrus afbc as it not works wth ffmpeg7.1 v4l2_request" https://github.com/warpme/minimyth2/commit/c9743d01be4b20d44ae5bf8bf59e04e3a238598b#diff-8cd76cccf3166ac60fa54f50e375720ff39bbf2d3e9765ee3f787c94b81a3894R110 My Armbian build 6.10 kernel https://github.com/NickAlilovic/build/blob/v20241007/patch/kernel/archive/sunxi-6.10/patches.armbian/0551-media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch
-
You can change your edge kernel in config/sources/families/include/sunxi64_common.inc case $BRANCH in legacy) declare -g KERNEL_MAJOR_MINOR="6.1" # Major and minor versions of this kernel. declare -g KERNELBRANCH="tag:v6.1.104" ;; current) declare -g KERNEL_MAJOR_MINOR="6.6" # Major and minor versions of this kernel. declare -g KERNELBRANCH="tag:v6.6.44" ;; edge) declare -g KERNEL_MAJOR_MINOR="6.10" # Major and minor versions of this kernel. declare -g KERNELBRANCH="tag:v6.10.9" ;; esac
-
Thanks for the update afiftyp. I'll give it a try. I thought maybe the issue was with my dts settings. Bluetooth only works when I boot into android and enable bluetooth. Then reboot back to Armbian. I don't use bluetooth much so I haven't looked into it. This code is from orange pi zero 2. https://github.com/NickAlilovic/build/blob/74d622f5b071acae4b61904e15f3da2f055c2167/patch/kernel/archive/sunxi-6.1/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2.patch#L43 wifi_pwrseq: wifi-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rtc 1>; + clock-names = "osc32k-out"; + reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */ + post-power-on-delay-ms = <200>; + }; My code is similar to orange pie. But I have a pinctrl-0 = <&x32clk_fanout_pin>; and no delay. https://github.com/NickAlilovic/build/blob/74d622f5b071acae4b61904e15f3da2f055c2167/patch/kernel/archive/sunxi-6.7/patches.armbian/arm64-dts-allwinner-h618-add-Transpeed-8K618-T-TV-box.patch#L121C1-L128C12 + wifi_pwrseq: wifi_pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rtc CLK_OSC32K_FANOUT>; + clock-names = "ext_clock"; + pinctrl-0 = <&x32clk_fanout_pin>; + pinctrl-names = "default"; + reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */ + }; This part confuses me.. clock-names = "osc32k-out"; I think it should be clock-names = "ext_clock"; Only the Armbian patches use "osc32k-out" for wifi_pwrseq clock names. I guess you can name it whatever you like it will always use &rtc 1 or &rtc CLK_OSC32K_FANOUT. https://github.com/torvalds/linux/blob/8e929cb546ee42c9a61d24fae60605e9e3192354/include/dt-bindings/clock/sun6i-rtc.h https://github.com/torvalds/linux/blob/8e929cb546ee42c9a61d24fae60605e9e3192354/drivers/mmc/core/pwrseq_simple.c#L120C20-L120C50 pwrseq->ext_clk = devm_clk_get(dev, "ext_clock"); if (IS_ERR(pwrseq->ext_clk) && PTR_ERR(pwrseq->ext_clk) != -ENOENT) return dev_err_probe(dev, PTR_ERR(pwrseq->ext_clk), "external clock not ready\n"); However, I did find the clock name "osc32k-out" in the RTC portion of h6.dtsi. The h616.dtsi doesn't have any clock-output-names. rtc: rtc@7000000 { compatible = "allwinner,sun50i-h6-rtc"; reg = <0x07000000 0x400>; interrupt-parent = <&r_intc>; interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; clock-output-names = "osc32k", "osc32k-out", "iosc"; #clock-cells = <1>; }; Also here. https://github.com/torvalds/linux/blob/6485cf5ea253d40d507cd71253c9568c5470cd27/drivers/rtc/rtc-sun6i.c#L232 static void __init sun6i_rtc_clk_init(struct device_node *node, const struct sun6i_rtc_clk_data *data) { struct clk_hw_onecell_data *clk_data; struct sun6i_rtc_dev *rtc; struct clk_init_data init = { .ops = &sun6i_rtc_osc_ops, .name = "losc", }; const char *iosc_name = "rtc-int-osc"; const char *clkout_name = "osc32k-out"; const char *parents[2]; u32 reg; of_property_read_string_index(node, "clock-output-names", 1, &clkout_name); rtc->ext_losc = clk_register_gate(NULL, clkout_name, init.name, 0, rtc->base + SUN6I_LOSC_OUT_GATING, SUN6I_LOSC_OUT_GATING_EN_OFFSET, 0, &rtc->lock); Because the there's no "clock-output-names" in the h616.dtsi.. char *clkout_name = "osc32k-out"; does not change. Maybe you accidentally used the rtc-sun6i.c clock.
-
Here are the Allwinner BSP kernel drivers if you want to dive deep into the rabbit hole. git clone https://github.com/AvaotaSBC/linux.git --depth=1 Have you tried a newer version of bluez? https://packages.debian.org/search?arch=arm64&keywords=bluez https://github.com/bluez/bluez/tree/master https://github.com/bluez/bluez/blob/bd7d49d54aa3aa490ebdd67b3dd2317d29213d45/monitor/bt.h#L1488 #define BT_HCI_CMD_WRITE_EXT_INQUIRY_RESPONSE 0x0c52 struct bt_hci_cmd_write_ext_inquiry_response { uint8_t fec; uint8_t data[240]; } __attribute__ ((packed)); https://github.com/bluez/bluez/blob/bd7d49d54aa3aa490ebdd67b3dd2317d29213d45/monitor/bt.h#L1271C1-L1274C28 #define BT_HCI_CMD_WRITE_CLASS_OF_DEV 0x0c24 struct bt_hci_cmd_write_class_of_dev { uint8_t dev_class[3]; } __attribute__ ((packed)); https://github.com/bluez/bluez/blob/bd7d49d54aa3aa490ebdd67b3dd2317d29213d45/monitor/packet.c#L5920 static void write_ext_inquiry_response_cmd(const void *data, uint8_t size) { const struct bt_hci_cmd_write_ext_inquiry_response *cmd = data; print_fec(cmd->fec); print_eir(cmd->data, sizeof(cmd->data), false); } https://kernel.googlesource.com/pub/scm/bluetooth/bluez/+/5.7/monitor/packet.c#4070 { 0x0c52, 137, "Write Extended Inquiry Response", write_ext_inquiry_response_cmd, 241, true, status_rsp, 1, true }, https://github.com/bluez/bluez/blob/bd7d49d54aa3aa490ebdd67b3dd2317d29213d45/monitor/packet.c#L5565 static void write_class_of_dev_cmd(uint16_t index, const void *data, uint8_t size) { const struct bt_hci_cmd_write_class_of_dev *cmd = data; print_dev_class(cmd->dev_class); } https://kernel.googlesource.com/pub/scm/bluetooth/bluez/+/5.7/monitor/packet.c#4015 { 0x0c24, 73, "Write Class of Device", write_class_of_dev_cmd, 3, true, status_rsp, 1, true }, You can ask the bluez developers for help. https://github.com/bluez/bluez/issues
-
Try the firmware from here. https://forums.linuxmint.com/viewtopic.php?p=1994357#p1994357
-
I think you used the wifi firmware from LibreElec. But the bluetooth firmware "BCM4334B0.hcd" was already existing in the Armbian firmware folder. The Armbian firmware might be different than LibreElec's version. Worth a try. I'm not sure if the sdio.txt file has bluetooth configuration settings in it. We can play with some of these settings.
-
Maybe you'll have better luck with these. https://github.com/LibreELEC/brcmfmac_sdio-firmware
-
You need these three files: bcm4334.hcd (bluetooth) fw_bcm4334b1_ag.bin (wifi .bin) nvram_ap6334.txt (wifi .txt)
-
I forget exactly where the firmware is... I think it's in /vendor/etc/firmware. Search your android partitions for a file called BCM4334B0.hcd. You can also try your original android wifi firmware too. You can use the X-plorer app. My box comes with it.
-
firepower.. I don't even see a HCI interface detected at all. Maybe your dts needs some work. MMorales your dmesg looks like a firmware issue.. extract the firmware from your original android.
-
Looking at the patch again... I don't think adding cooling will solve the issue. Also the H616 dtsi already has "#cooling-cells = <2>;". https://lore.kernel.org/linux-arm-kernel/20230821-ths-h616-v2-0-cda60d556798@somainline.org/T/ Right now I'm using the 6.10.10 kernel. I'll update to 6.10.14 and make a new kernel config. Your board is using an external crystal for it's clock. Can I see your dmesg log? Maybe you just need bluetooth firmware.
-
I guess the thermal patches where mainlined for kernel 6.10. Maybe it still needs the 6.9 patch? Or something is missing in the kernel config? Kernel 6.7. https://github.com/NickAlilovic/build/blob/main/patch/kernel/archive/sunxi-6.7/patches.armbian/arm64-dts-allwinner-h616-Add-thermal-sensor-and-thermal-zones.patch https://github.com/NickAlilovic/build/blob/main/patch/kernel/archive/sunxi-6.7/patches.armbian/arm64-dts-allwinner-h616-Fix-thermal-zones-missing-trips.patch Kernel 6.9 (Missing Trips and most of the DT thermal settings were added to 6.9 mainline kernel.) https://github.com/NickAlilovic/build/blob/v20240909/patch/kernel/archive/sunxi-6.9/patches.armbian/arm64-dts-allwinner-h616-Add-thermal-sensor-and-thermal-zones.patch Bluetooth still has issues. The bluetooth interface randomly changes from hci0 to hci1. At first there was a problem with the Internal 32Khz OSC Clock. By enabling the Internal OSC Clock Auto Calibration Register we got a 32Khz needed to detect Bluetooth. But there's something missing. Right now it works when it feels like it. Usually when I enable Bluetooth using Android then reboot to Armbian It works. Can someone with a Transpeed 8k618-t measure the 32KHz clock with a Oscilloscope? The 32Khz fanout is routed to PG10 pin on the SOC and connected to the LPO pin of the WiFi/BT chip. Depending on your wifi chip you might be missing the BT firmware. I have a 4335 chip so I use BCM4335A0.hcd. You can find the original firmware on your android partition if you still have it or search around online.
-
My 6.10 kernel needs more work. The patches for Ethernet is broken. I think the hdmi works on my box tho. I would stick with 6.9 for now.
-
Yes, sorry I forgot to mention that your patch needs to be applied last. So you need to change the name of the patch. If all the sunxi u-boot patches had a prefix in front it. It would help alot. We don't have this problem with kernel patches because the build system uses series.armbian and series.conf for the patch execution order.
-
You can't use your android dts. It needs to be converted to mainline linux. But you can use some of the information. For example these are the gpio settings for wifi. Android: wlan_regon = <0x53 0x06 0x12 0x01 0xffffffff 0xffffffff 0x00>; Linux: gpio = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18 WL_REG_ON */ Android: wlan_hostwake = <0x53 0x06 0x0f 0x06 0xffffffff 0xffffffff 0x00>; Linux: interrupts = <6 15 IRQ_TYPE_EDGE_RISING>; /* PG15 WL_HOSTWAKE*/ https://www.rapidtables.com/convert/number/hex-to-binary.html https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/0644-arm64-dts-allwinner-h313-add-x96q-TVbox.patch I think your problem is the wifi driver. SV6256P uses the ssv6x5x driver. Only source I can find is for linux 4.4 kernel. https://github.com/paolosabatino/ssv6x5x/tree/master
-
MMorales which image boots on your box? Can you post the error message?
-
The reason I suggested "sudo git format-patch -1 v2024.01" was because I can only generate kernel patches this way. It use to work before but branch names changed from "linux-6.7.y" to "kernel-sunxi64-6.7". sudo git format-patch linux-6.7.y use to work sudo git format-patch kernel-sunxi64-6.7 Does not work sudo git format-patch -1 kernel-sunxi64-6.7 works -<n> Prepare patches from the topmost <n> commits.
-
Maybe it's a bad HDMI cable?
-
I think for openvfd LED to work you need these lines in your dts. You probably have to modify it with the correct GPIO settings for your box. You can find it in the android dts. I haven't tested this yet. https://github.com/warpme/minimyth2/blob/master/script/kernel/linux-6.10/files/0568-arm64-dts-allwinner-tanix-tx6-enable-wifi-cpu-dvfs.patch + openvfd { + compatible = "open,vfd"; + dev_name = "openvfd"; + openvfd_gpio_clk = <&pio 3 25 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PD25 */ + openvfd_gpio_dat = <&pio 3 26 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PD26 */ + vfd_gpio_chip_name = "300b000.pinctrl"; + openvfd_chars = [02 04 03 02 01]; + openvfd_dot_bits = [00 01 03 02 04 05 06]; + openvfd_display_type = <0x03000001>; + status = "okay"; + }; Driver patches and service init script. https://github.com/warpme/minimyth2/tree/master/script/kernel/openvfd More info found in CoreELEC https://discourse.coreelec.org/t/how-to-configure-vfd/427/43?page=3 vfd-configurations ( looking at these configurations you can set gpio here. I'll look more into it when I have time off.) https://github.com/arthur-liberman/vfd-configurations
-
I ran the commands above and the only changes I made was the build directory name. On sicXnull repository it's called "armbian-build" instead of "build". From 2af52d684c05cdd7eef9123baa7a1157507b03a2 Mon Sep 17 00:00:00 2001 From: Nick Alilovic <nickalilovic@gmail.com> Date: Mon, 23 Sep 2024 09:37:45 -0400 Subject: [PATCH 2/2] configs: x96q lpddr3: Add SECURE BOOT Add SECURE BOOT Signed-off-by: Nick Alilovic <nickalilovic@gmail.com> --- configs/x96q_lpddr3_defconfig | 1 + root_key.pem | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 root_key.pem diff --git a/configs/x96q_lpddr3_defconfig b/configs/x96q_lpddr3_defconfig index 764e77dac1..828f59a9b7 100644 --- a/configs/x96q_lpddr3_defconfig +++ b/configs/x96q_lpddr3_defconfig @@ -17,6 +17,7 @@ CONFIG_MACH_SUN50I_H616=y CONFIG_R_I2C_ENABLE=y CONFIG_SPL_I2C=y CONFIG_SPL_I2C_SUPPORT=y +CONFIG_SPL_IMAGE_TYPE_SUNXI_TOC0=y CONFIG_SPL_SYS_I2C_LEGACY=y CONFIG_SYS_I2C_MVTWSI=y CONFIG_SYS_I2C_SLAVE=0x7f diff --git a/root_key.pem b/root_key.pem new file mode 100644 index 0000000000..cfffdbf247 --- /dev/null +++ b/root_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC4N+7DvqP4cmLP +1u9L8dQ1fVtzXxwzt6Qrn0JEMyHtQm2ZSwxOrAjyPKt9UTfEz3G5K7v7wBLzxS+n +KQWtrcwiFfAPrFK5wyEQU/z/ltfUBg4NCagvgngb38AGwdgAPZ9+Wl3cueB6XxpJ +etVlLUQtiaqGb92CyUDqZsbrNaBOOcxUxNEkAtxOHzriDC9PKRi780ntXWjp+R5Z +loDQ0SyxjnhGBPNAhEAkEHXCLhTg82JHm4tNEVi/esXfMwQRm6x/eb/p55zd/ULU +RXdxxS0j7/DPhRpync6mYJzLl7bDRrNA9DnyyC2kgWWkJ9F/QNMl3HqHTgClehTZ +MfO1tCM5AgMBAAECggEAAn6CJsCRUSFWHq6wF8OYupeBK/U6/ojDRmRP59TlyYsB +oi28fIwH/ev1ASne1L+txZ8k85qYp/uUVGjaynrng8roN8OpiZKGo14qMArf6x9S +eb2hjPfmX++vAT6jcOpkrOmDAFnf+IGDbytWPGTTxGoD5upf2PjYHnqPZQyrHY// +yAIpYtS9zjRx44iVN8olwwXXTDVe7yigAkrYvu0f4AUUv4azv68eYWXUXDN1YaWE +gtwjSOCnhuwHTJTyz6Vi40ju32zxq7rTbe09NV7LcU6CmJBy8GDv2KsNfwk+OwsI +gvz31jZ1jwyLZEGAxL/ibA0ldSAsjG3Akgw8jqG1cQKBgQDunDFVljn2uWVoBwip +QJveKIGNgVnJ6YF630JGMP4X20rkh7/9lyBJQUixlc6Z3qUcCfyKi8EJkPMLs1u+ +QSmmKnsInqp8ZkCPG0g4FZNgHkC+fIfmgO+gVNxyh+MXZNsvVVH6NtpRIfLSXeCl +aTWv4d8rIU5Tl9hDY2UhGQ7CaQKBgQDFpPEeS5hdIaqnZaJ50/V/gzrkENAFWZuP +zYqhS4RcD6dogAByjQvvNByIn5avrPz6N75qsZl5VY0TtaYe6hHehDOwKHM7CFZe +FSjSTdgi7b5jL11///9W5Eztn7L1ckZo93j2ZYLl9+PuXGAY4SRcYYOQjBBmOwmj +Qpryy2+gUQKBgCY4uuZc1BgjhoztY4PJJ66kimwiZkGjt+v4y2L3AhzMMej9ndF/ +XdqeLIjV2Gxpb8VYDC4dSOTBZU1gg7esNIG7mE2/LMwUjQ7fbegd/KeO8QwSYqqX +yMrEDTQDdGsQ6tNgNWuBUeNhLsZn505X1hPAeMEt6qAVWL0itNZibyzRAoGBALD6 +8wKa1LPImuTM6MHI4FOvckOZHn078UXC2zl1wu8hAVpdDImG7cHj2w0oQqnK8Lkq +w3MM145D4lFc3oVeOmQT46kBf7XD0Hrs3aH8HOeiFlMArewZk07+njhGQdzx2ETU +HVgeLCm7YTonM9HzgTjMBSChm2m/wfCUiuWQ78MRAoGAWAElZCjb8Dxp9z8KJ0JX +Z3d2yueOgxf3J6X+7XMW7Yv9uFOvYNI/BNT3Ii3P+u6SJpKXuQgBoDT/2FP/f8m6 +U1dMu7PHcBi3MA1IvGi6NSC+cVcIy0yYi2vYsW6lkOsDwr+HrDQWte3HjiXcIy+g +f9CFoVb4L1ILI/SBaZSV8LQ= +-----END PRIVATE KEY----- -- 2.34.1 configs-x96q-lpddr3-Add-SECURE-BOOT.patch
-
Here's a step by step instructions to compile and create your own image. Make sure you "ctrl c" after the kernel patches are applied. The build erases the cached kernel source when completed. You want the patches applied before you stop the build. First link are the files I usually edit. Second link is how to make a patch and build your own image.
-
Run these commands again. sudo git status sudo git add configs/x96q_lpddr3_defconfig sudo git add root_key.pem sudo git commit --signoff (Remember the first line patch title and the second line patch description.) sudo git format-patch v2024.01 maybe you didn’t commit the patch? Git commit usually opens up a text editor. When you run "sudo git status" and the output still shows "modified: configs/x96q_lpddr3_defconfig" then you haven't commit the changes yet. your patch should look similar to mine.
-
Try this command with -1 after format-patch sudo git format-patch -1 v2024.01