Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Add SPC Glee 10.1 A64 board support
@ 2026-09-11 13:48 Juan Carlos Gutiérrez Lavado via B4 Relay
  2026-09-11 13:48 ` [PATCH v2 1/2] dt-bindings: arm: sunxi: Add SPC Glee 10.1 A64 Juan Carlos Gutiérrez Lavado via B4 Relay
  2026-09-11 13:48 ` [PATCH v2 2/2] arm64: dts: allwinner: " Juan Carlos Gutiérrez Lavado via B4 Relay
  0 siblings, 2 replies; 4+ messages in thread
From: Juan Carlos Gutiérrez Lavado via B4 Relay @ 2026-09-11 13:48 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Chen-Yu Tsai,
	Jernej Skrabec, Samuel Holland, Maxime Ripard
  Cc: devicetree, linux-arm-kernel, linux-sunxi, linux-kernel,
	Juan Carlos Gutiérrez Lavado

Add initial support for the SPC Glee 10.1 tablet with Allwinner A64
and AXP803 PMIC. Describe essential supplies, 2 GiB DRAM, microSD,
UART, battery monitoring and USB peripheral mode. Keep unverified
peripherals disabled. The microSD slot uses broken-cd and a conservative
25 MHz limit until its card-detect wiring and faster modes are validated.

Validation against sunxi/for-next base 913f7eda9f3e:
- DTB build, binding checks and full DTB schema validation pass with
  dt-schema 2026.6. W=1 retains three inherited SoC warnings.
- Cold boot from microSD and kexec into Linux 7.3.0-rc1 with the corrected
  DTB reach accessible userspace without regulator_ignore_unused.
- CPUfreq transitions to 648, 816 and 1152 MHz were observed.
- CPU cooling state 7 limits the CPU to 648 MHz. Automatic thermal updates
  were paused briefly to test this actuator, then restored.
- USB supply online/present changed 1 -> 0 -> 1 during cable unplug/replug;
  SSH reconnected after the cable was restored.
- Automatic CPU thermal cooling reduced frequency under load. Two SHA-256
  workers completed 10 minutes, peaking at 78.37 C, with USB/SSH connected.
  Cooling state returned to 0 after removing the load. A four-worker test
  was stopped at a conservative 80 C limit after 27 seconds.

Long-duration stability, sustained full four-core load and broader peripheral
support remain unvalidated.

Signed-off-by: Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>
---
Changes in v2:
- Use the onspc vendor prefix and place its registry entry alphabetically.
- Include CPU OPPs for CPUfreq and CPU thermal cooling.
- Enable the AXP803 USB supply and link it to the USB PHY for VBUS detection.
- Keep ALDO2 (VCC-PL, 1.8 V) and ALDO3 (VCC-PLL/AVCC, 3.0 V) always on.
  These supplies are identified by the stock firmware and match the
  measured baseline settings. Earlier test boots stopped progressing
  without regulator_ignore_unused; the corrected DTB remains responsive.
- Link to v1: https://lore.kernel.org/all/20260906-b4-spc-glee-a64-v1-v1-0-621df2155e31@proton.me/

---
Juan Carlos Gutiérrez Lavado (2):
      dt-bindings: arm: sunxi: Add SPC Glee 10.1 A64
      arm64: dts: allwinner: Add SPC Glee 10.1 A64

 Documentation/devicetree/bindings/arm/sunxi.yaml   |   5 +
 .../devicetree/bindings/vendor-prefixes.yaml       |   2 +
 arch/arm64/boot/dts/allwinner/Makefile             |   1 +
 .../boot/dts/allwinner/sun50i-a64-spc-glee.dts     | 143 +++++++++++++++++++++
 4 files changed, 151 insertions(+)
---
base-commit: 913f7eda9f3e3fb1c67285e144e202494d440049
change-id: 20260906-b4-spc-glee-a64-v1-6e6dba38aa5e

Best regards,
--  
Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] dt-bindings: arm: sunxi: Add SPC Glee 10.1 A64
  2026-09-11 13:48 [PATCH v2 0/2] Add SPC Glee 10.1 A64 board support Juan Carlos Gutiérrez Lavado via B4 Relay
@ 2026-09-11 13:48 ` Juan Carlos Gutiérrez Lavado via B4 Relay
  2026-09-11 13:48 ` [PATCH v2 2/2] arm64: dts: allwinner: " Juan Carlos Gutiérrez Lavado via B4 Relay
  1 sibling, 0 replies; 4+ messages in thread
From: Juan Carlos Gutiérrez Lavado via B4 Relay @ 2026-09-11 13:48 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Chen-Yu Tsai,
	Jernej Skrabec, Samuel Holland, Maxime Ripard
  Cc: devicetree, linux-arm-kernel, linux-sunxi, linux-kernel,
	Juan Carlos Gutiérrez Lavado

From: Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>

Add the Smart Products Connection vendor prefix and the board
compatible for the SPC Glee 10.1 tablet based on the Allwinner A64.

Signed-off-by: Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>
---
 Documentation/devicetree/bindings/arm/sunxi.yaml       | 5 +++++
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentation/devicetree/bindings/arm/sunxi.yaml
index f04db28c6..459a1772d 100644
--- a/Documentation/devicetree/bindings/arm/sunxi.yaml
+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml
@@ -902,6 +902,11 @@ properties:
           - const: allwinner,suniv-f1c200s
           - const: allwinner,suniv-f1c100s
 
+      - description: SPC Glee 10.1 A64 tablet
+        items:
+          - const: onspc,glee-10-1-a64
+          - const: allwinner,sun50i-a64
+
       - description: SL631 Action Camera with IMX179
         items:
           - const: allwinner,sl631-imx179
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index ba2002969..9d864dc56 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1253,6 +1253,8 @@ patternProperties:
     description: Onion Corporation
   "^onnn,.*":
     description: ON Semiconductor Corp.
+  "^onspc,.*":
+    description: Smart Products Connection S.A.
   "^ontat,.*":
     description: On Tat Industrial Company
   "^opalkelly,.*":

-- 
2.55.0




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] arm64: dts: allwinner: Add SPC Glee 10.1 A64
  2026-09-11 13:48 [PATCH v2 0/2] Add SPC Glee 10.1 A64 board support Juan Carlos Gutiérrez Lavado via B4 Relay
  2026-09-11 13:48 ` [PATCH v2 1/2] dt-bindings: arm: sunxi: Add SPC Glee 10.1 A64 Juan Carlos Gutiérrez Lavado via B4 Relay
@ 2026-09-11 13:48 ` Juan Carlos Gutiérrez Lavado via B4 Relay
  2026-09-11 15:16   ` Andre Przywara
  1 sibling, 1 reply; 4+ messages in thread
From: Juan Carlos Gutiérrez Lavado via B4 Relay @ 2026-09-11 13:48 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Chen-Yu Tsai,
	Jernej Skrabec, Samuel Holland, Maxime Ripard
  Cc: devicetree, linux-arm-kernel, linux-sunxi, linux-kernel,
	Juan Carlos Gutiérrez Lavado

From: Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>

Add support for the SPC Glee 10.1 tablet based on the Allwinner A64.
Describe the 2 GiB DRAM configuration, AXP803 PMIC, essential supplies,
microSD, UART, battery monitoring and USB peripheral port. Leave eMMC
and unverified peripherals disabled.

Include CPU operating points for frequency scaling and thermal cooling.
Enable the PMIC USB supply and connect it to the PHY for VBUS detection.
Keep the ALDO2 VCC-PL and ALDO3 VCC-PLL/AVCC supplies enabled, matching
the stock firmware and the measured 1.8 V and 3.0 V baseline settings.

Tested with kexec into Linux 7.3.0-rc1 without regulator_ignore_unused:
CPU frequency transitions, CPU cooling frequency cap, and USB supply
unplug/replug detection with SSH reconnection. Cold-boot validation of
this revision remains pending.

Signed-off-by: Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>
---
 arch/arm64/boot/dts/allwinner/Makefile             |   1 +
 .../boot/dts/allwinner/sun50i-a64-spc-glee.dts     | 143 +++++++++++++++++++++
 2 files changed, 144 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index aa21f58a4..cc6687b39 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -21,6 +21,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-early-adopter.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-spc-glee.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-spc-glee.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-spc-glee.dts
new file mode 100644
index 000000000..0f8f37b14
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-spc-glee.dts
@@ -0,0 +1,143 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2026 SPC Glee A64 Linux contributors
+ */
+
+/dts-v1/;
+
+#include "sun50i-a64.dtsi"
+#include "sun50i-a64-cpu-opp.dtsi"
+
+/ {
+	model = "SPC Glee 10.1 A64";
+	compatible = "onspc,glee-10-1-a64", "allwinner,sun50i-a64";
+	chassis-type = "tablet";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x40000000 0x80000000>;
+	};
+};
+
+&cpu0 {
+	cpu-supply = <&reg_dcdc2>;
+};
+
+&cpu1 {
+	cpu-supply = <&reg_dcdc2>;
+};
+
+&cpu2 {
+	cpu-supply = <&reg_dcdc2>;
+};
+
+&cpu3 {
+	cpu-supply = <&reg_dcdc2>;
+};
+
+&mmc0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_pins>;
+	vmmc-supply = <&reg_dcdc1>;
+	vqmmc-supply = <&reg_dcdc1>;
+	broken-cd;
+	bus-width = <4>;
+	max-frequency = <25000000>;
+	status = "okay";
+};
+
+&r_rsb {
+	status = "okay";
+
+	axp803: pmic@3a3 {
+		compatible = "x-powers,axp803";
+		reg = <0x3a3>;
+		interrupt-parent = <&r_intc>;
+		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
+	};
+};
+
+#include "axp803.dtsi"
+
+&axp_adc {
+	status = "okay";
+};
+
+&battery_power_supply {
+	status = "okay";
+};
+
+&reg_aldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
+	regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+	regulator-always-on;
+	regulator-min-microvolt = <3000000>;
+	regulator-max-microvolt = <3000000>;
+	regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dcdc1 {
+	regulator-always-on;
+	regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1000000>;
+	regulator-max-microvolt = <1300000>;
+	regulator-name = "vdd-cpux";
+};
+
+&reg_dcdc5 {
+	regulator-always-on;
+	regulator-min-microvolt = <1500000>;
+	regulator-max-microvolt = <1500000>;
+	regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-sys";
+};
+
+&reg_fldo2 {
+	regulator-always-on;
+	regulator-min-microvolt = <1100000>;
+	regulator-max-microvolt = <1100000>;
+	regulator-name = "vdd-cpus";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pb_pins>;
+	status = "okay";
+};
+
+&usb_otg {
+	dr_mode = "peripheral";
+	status = "okay";
+};
+
+&usb_power_supply {
+	status = "okay";
+};
+
+&usbphy {
+	usb0_vbus_power-supply = <&usb_power_supply>;
+	status = "okay";
+};

-- 
2.55.0




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] arm64: dts: allwinner: Add SPC Glee 10.1 A64
  2026-09-11 13:48 ` [PATCH v2 2/2] arm64: dts: allwinner: " Juan Carlos Gutiérrez Lavado via B4 Relay
@ 2026-09-11 15:16   ` Andre Przywara
  0 siblings, 0 replies; 4+ messages in thread
From: Andre Przywara @ 2026-09-11 15:16 UTC (permalink / raw)
  To: jcarlosgl96, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Maxime Ripard
  Cc: devicetree, linux-arm-kernel, linux-sunxi, linux-kernel

Hi,

thanks for taking the time to send this upstream!
Have you looked at the Pinetab .dts? That could serve as a guideline for 
the other peripherals. Typically many devices follow some Allwinner 
reference design, so are close to each other.

On 9/11/26 15:48, Juan Carlos Gutiérrez Lavado via B4 Relay wrote:
> From: Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>
> 
> Add support for the SPC Glee 10.1 tablet based on the Allwinner A64.
> Describe the 2 GiB DRAM configuration, AXP803 PMIC, essential supplies,
> microSD, UART, battery monitoring and USB peripheral port. Leave eMMC

why is that? eMMC should be very easy to enable: you just need to figure 
out if it's 1.8V or 3.3V, the speed (mode) in a BSP booted system should 
give you some clue.
> and unverified peripherals disabled.
> 
> Include CPU operating points for frequency scaling and thermal cooling.
> Enable the PMIC USB supply and connect it to the PHY for VBUS detection.
> Keep the ALDO2 VCC-PL and ALDO3 VCC-PLL/AVCC supplies enabled, matching
> the stock firmware and the measured 1.8 V and 3.0 V baseline settings.
> 
> Tested with kexec into Linux 7.3.0-rc1 without regulator_ignore_unused:
> CPU frequency transitions, CPU cooling frequency cap, and USB supply
> unplug/replug detection with SSH reconnection. Cold-boot validation of
> this revision remains pending.
> 
> Signed-off-by: Juan Carlos Gutiérrez Lavado <jcarlosgl96@proton.me>
> ---
>   arch/arm64/boot/dts/allwinner/Makefile             |   1 +
>   .../boot/dts/allwinner/sun50i-a64-spc-glee.dts     | 143 +++++++++++++++++++++
>   2 files changed, 144 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
> index aa21f58a4..cc6687b39 100644
> --- a/arch/arm64/boot/dts/allwinner/Makefile
> +++ b/arch/arm64/boot/dts/allwinner/Makefile
> @@ -21,6 +21,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
>   dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
>   dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-early-adopter.dtb
>   dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-spc-glee.dtb
>   dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
>   dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb
>   dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-spc-glee.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-spc-glee.dts
> new file mode 100644
> index 000000000..0f8f37b14
> --- /dev/null
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-spc-glee.dts
> @@ -0,0 +1,143 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (C) 2026 SPC Glee A64 Linux contributors
> + */
> +
> +/dts-v1/;
> +
> +#include "sun50i-a64.dtsi"
> +#include "sun50i-a64-cpu-opp.dtsi"
> +
> +/ {
> +	model = "SPC Glee 10.1 A64";
> +	compatible = "onspc,glee-10-1-a64", "allwinner,sun50i-a64";
> +	chassis-type = "tablet";
> +
> +	aliases {
> +		serial0 = &uart0;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	memory@40000000 {
> +		device_type = "memory";
> +		reg = <0x40000000 0x80000000>;
> +	};

Please no memory nodes, this is up to the bootloader (U-Boot) to detect 
and insert into the DTB.
> +};
> +
> +&cpu0 {
> +	cpu-supply = <&reg_dcdc2>;
> +};
> +
> +&cpu1 {
> +	cpu-supply = <&reg_dcdc2>;
> +};
> +
> +&cpu2 {
> +	cpu-supply = <&reg_dcdc2>;
> +};
> +
> +&cpu3 {
> +	cpu-supply = <&reg_dcdc2>;
> +};
> +
> +&mmc0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mmc0_pins>;
> +	vmmc-supply = <&reg_dcdc1>;
> +	vqmmc-supply = <&reg_dcdc1>;
> +	broken-cd;
> +	bus-width = <4>;
> +	max-frequency = <25000000>;

Why is this? This would limit the SD card to just 12.5 MB/s, half of 
what it can do at High-Speed mode (at 3.3V).
If it can do 50 MHz (~25MB/s at 4 bits), you wouldn't need to enter a 
max frequency at all, as the 3.3V I/O supply would limit the frequency 
to that anyway.

> +	status = "okay";
> +};
> +
> +&r_rsb {
> +	status = "okay";
> +
> +	axp803: pmic@3a3 {
> +		compatible = "x-powers,axp803";
> +		reg = <0x3a3>;
> +		interrupt-parent = <&r_intc>;
> +		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
> +	};
> +};
> +
> +#include "axp803.dtsi"
> +
> +&axp_adc {
> +	status = "okay";
> +};
> +
> +&battery_power_supply {
> +	status = "okay";
> +};
> +
> +&reg_aldo2 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1800000>;
> +	regulator-max-microvolt = <1800000>;
> +	regulator-name = "vcc-pl";
> +};
> +
> +&reg_aldo3 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <3000000>;
> +	regulator-max-microvolt = <3000000>;
> +	regulator-name = "vcc-pll-avcc";
> +};
> +
> +&reg_dcdc1 {
> +	regulator-always-on;
> +	regulator-name = "vcc-3v3";
> +};
> +
> +&reg_dcdc2 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1000000>;
> +	regulator-max-microvolt = <1300000>;
> +	regulator-name = "vdd-cpux";
> +};
> +
> +&reg_dcdc5 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1500000>;
> +	regulator-max-microvolt = <1500000>;
> +	regulator-name = "vcc-dram";
> +};
> +
> +&reg_dcdc6 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1100000>;
> +	regulator-max-microvolt = <1100000>;
> +	regulator-name = "vdd-sys";
> +};
> +
> +&reg_fldo2 {
> +	regulator-always-on;
> +	regulator-min-microvolt = <1100000>;
> +	regulator-max-microvolt = <1100000>;
> +	regulator-name = "vdd-cpus";
> +};
> +
> +&uart0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart0_pb_pins>;
> +	status = "okay";
> +};
> +
> +&usb_otg {
> +	dr_mode = "peripheral";

Is that really peripheral only? I guess it can do OTG, right? You hint 
at that above in the commit message. You would just need to specify 
usb0_id_det-gpios in the usbphy node below. If you are lucky, the BSP's 
/sys/kernel/debug/gpio would give you a hint which GPIO it is.

Cheers,
Andre

> +	status = "okay";
> +};
> +
> +&usb_power_supply {
> +	status = "okay";
> +};
> +
> +&usbphy {
> +	usb0_vbus_power-supply = <&usb_power_supply>;
> +	status = "okay";
> +};
> 



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-11 15:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 13:48 [PATCH v2 0/2] Add SPC Glee 10.1 A64 board support Juan Carlos Gutiérrez Lavado via B4 Relay
2026-09-11 13:48 ` [PATCH v2 1/2] dt-bindings: arm: sunxi: Add SPC Glee 10.1 A64 Juan Carlos Gutiérrez Lavado via B4 Relay
2026-09-11 13:48 ` [PATCH v2 2/2] arm64: dts: allwinner: " Juan Carlos Gutiérrez Lavado via B4 Relay
2026-09-11 15:16   ` Andre Przywara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox