More hardware information of iHost for helping porting HAOS

There are some developers trying to porting HAOS into ihost, but because of the lack of information, it is not very smooth to do it. If the Sonoff/eWeLink team is willing to help with this and share/provide more information of iHost, such as more information about the YC1175 chip and more information about the hardware of the microphone and speaker.

1 Like

Regarding the YC1175, as already mentioned in the post - you can already find the corresponding SOC connection block diagram and serial commands instructions, what additional information do you need ? This chip does not exist any other hidden support for serial commands . Also - its wireless function is not enabled (Bluetooth function will be implemented through RTL8723 module), and it is used purely as just an MCU. If you want to re-build code for it and refalsh it, we can provide you with YC1175 datasheet and development documents and SDK (but most of them are in Chinese). Beside these information , we can not help you any more with YC1175 code development.

Regarding speakers and microphones, we can provide a more detailed connection block diagram, which is not difficult. Also - Support for microphones and speakers is already implemented in the linux distribution mentioned in the post, and maybe we can show you how to test and verify these hardwares easily.

1 Like

YC1175 controls maskROM mode when triggered from ewelink app? is there a serial command for this?

Sound can come later…

1 Like

The YC1175 doesn’t have that capability - it currently only functions as an MCU control LEDs and takeover button. Other than that, it has no any more use…

The maskROM command is sent directly from the cloud over an encrypted connection. The command is delivered only after the user has confirmed the security warning multiple times.

1 Like

MaskROM is driven by a GPIO on the YC1175 though, as far as I can tell from the board? (I currently just using the test pads on board to trigger maskROM mode though, so doesnt matter too much for now)

1 Like

can you share the source dts (u-boot and kernel) files used to build the Linux distro? The ones I decompiled from the image, dont have symbols so they are bit inconvenient to work with!

1 Like

No problem. We’ll sort it out and get back to you.
If there’s anything else you need, please don’t hesitate to ask - As long as it is not covered by some of our commercial NDAs, we try to provide it to developers without reservation.

1 Like

This capability was not designed and provided by YC1175.

In the eWeLink CUBE system, MaskROM mode is entered directly after the system is restarted by software instructions.

Of course, if you disassemble the ihost, you can also simply short the corresponding pad to achieve MaskROM mode

1 Like

When I inspected the circuit board traces it very much looks like MaskROM is connected to a GPIO on the YC1175 (through Q4). I would have thought eWeLink Cube sends a command to YC1175 to set maskROM pin (and change LEDS), while the main MCU reboots? or is this connection not used?

1 Like

Hi, dts had been split to different fragments. So I provide you the dtb file directly.

Kernel dtb file:

U-Boot dtb file:

1 Like

The RV1109 sends light effects command to the YC1175 - but doesn’t tell it anything about MaskROM. The system itself restarts and then enters MaskROM

1 Like

Thanks for those, however I can’t use the dtb files directly as trying to build with upstream 6.3 kernel (based off the work that was done for edgeble AI neu2 rv1126 board).

It would be better to have dts/dtsi fragments, are you able to just tar/zip the few top level ones rv1128*dts(i) files? I really only interested in what has been changed compared to the reference Rockchip RV1126 EVB v13 that this build was based off.

well I guess then the question is, can enter maskROM with some command from the Linux distro?

try these:

uboot.dts (89.5 KB)
kernel.dts (112.5 KB)

1 Like

Sorry, Linux distro cannt support enter maskROM by command.

1 Like

these were decompiled from .dtb files? that is what I extracted from the Image originally. But they cumbersome to work with as no symbols.

For example

		i2c0 {

			i2c0-xfer {
				rockchip,pins = <0x0 0xc 0x1 0xd4 0x0 0xd 0x1 0xd4>;
				phandle = <0x3a>;
			};
		};

Need to manually look up each parameter in the relevant source header enums to find what is being set!

1 Like

I pack all the related dts and .h below, try this again !
dts.zip (80.6 KB)

1 Like

Or you can modify the U-BOOT config with CONFIG_CMD_DFU=y to support it.

1 Like

great, thanks for that. That is what I was after.

I will check out the DFU option, that will probably help!

Could I also get the kernel defconfig that you used? Havent managed to get a kernel that boots yet, its failing pretty early maybe with memory issues. Does DDR4 need to be set in the kernel or does it use the timings set by U-boot?

1 Like

Sorry for the wait, here is the kernel defconfig.
rv1126_defconfig (11.9 KB)

We have very little information about DDR. Can you try it all?

1 Like