# Porting to unsupported SoC?



## Mishaparem (Aug 26, 2021)

Hello all,


			arm - FreeBSD Wiki
		

The wiki does not list support for the SoC that interests me. Now, I know I could just go out and buy something with one of the SoCs that IS supported, but I've got this great 10in, 10yo tablet, that, despite its age, has a killer battery (after I rooted and killed all the unnecessary processes). I could even keep it as is, but I recently got the itch to install BSD on it. Why? Eh, I dunno =). Anyhow, I was wondering if anyone could suggest a good place to start, in my quest to port FreeBSD to a new SoC.

Thanks in advance!

Info only, not an ad: (I'm not even sure it's possible to find these in decent condition anymore)
Tablet: Samsung Galaxy Note 10.1 2014 Edition
SoC: Exynos 5420

Update:
I actually just found this commit in SVN: 266943


> Log Message:Add support for Exynos 5420 Octa - 8-core


Looks like the support is already there. That doesn't negate the original question though - I have an entire stack of mobile devices, and I'd still be interested to learn how to add support for other SoC's, plus... the commit is over 7 years old, and some updates might be in order.


----------



## mark_j (Aug 27, 2021)

Yes, probably the Wiki is ... out of date.
I see device tree bindings for the Exynos SoC USB, Clock, ADC etc in 13 but no conf files, so you are correct.

I remember it being in a previous version because I was also going to experiment (never got around to it)

Anyway, I just checked our 11.4 server and sure enough it's there. I don't have time to check for why it was removed (my guess is no one wanted to support it) but it looks to be a functional conf file with appropriate samsung files.

So grab 11.4 and try it.


----------



## escape (Sep 26, 2021)

The previous answer must be the processor architecture. The 8-cores is not common but the ARM (at least `aarch64`) devices are popular. The packages can be upgraded prebuilt. You have a 32-bit "`arm`" device according to the Wiki link.

For what it is forth, a fast try would be to find a ready made 32-bit image and to try it first. The u-boot suitable for the device may be found from the ports `sysutils/u-boot*` . If EFI is ok. Just write the image and add the u-boot as in the `pkg-descr`:


```
To install this bootloader on an sdcard just do:
dd if=/usr/local/share/u-boot/u-boot-*/<uboot-file>.bin of=/path/to/sdcarddevice bs=128k seek=1 conv=sync
```

Sometimes the device may provide some small memory device on board to use to install the boot loader. How the device boots and where (and how) to install the boot loader, I do not know. If you find out how and where the device finds the boot loader, the information would be helpful to others too.

It would be nice to find a more official U-Boot repository to get some more  support.


----------



## astyle (Sep 27, 2021)

I've rooted some Android phones and tabs myself, so I can say that it's probably a good idea to have a skeleton to flesh out. Like, start with replacing Android's bootloader with something that is more like something that came from FreeBSD, then the kernel (see if it boots), then make sure the whole enchilada is reproducible.

It's a great timewaster, and a learning opportunity.


----------



## Mishaparem (Sep 27, 2021)

I've always been a bit weary of working with androids, mostly because I'd hate to brick one of my devices, even though I've got a bunch of them collecting dust, until I see one and start wanting to do something cool with it. same with PC and BIOS fiddling. What steps can I take, to reduce the likelihood of bricking? I've seen a couple of articles around for booting from an sd card, an alternative is maybe over OTG+usb flash drive, but from what I understand, this probably requires tweaking cyano or twrp recovery to boot from said devices, which is arguably riskier than flashing a recovery rom to the device, and keeping the operational recovery to flash the modifications to the os maybe...


----------



## SirDice (Sep 27, 2021)

Mishaparem said:


> What steps can I take, to reduce the likelihood of bricking?


Depends on the device. Some devices have a way to restore the original bootloader. Same with mainboards and BIOS updates, some boards have specific features that make it possible to "unbrick" a bricked mainboard.


----------



## astyle (Sep 27, 2021)

Mishaparem said:


> I've always been a bit weary of working with androids, mostly because I'd hate to brick one of my devices, even though I've got a bunch of them collecting dust, until I see one and start wanting to do something cool with it. same with PC and BIOS fiddling. What steps can I take, to reduce the likelihood of bricking? I've seen a couple of articles around for booting from an sd card, an alternative is maybe over OTG+usb flash drive, but from what I understand, this probably requires tweaking cyano or twrp recovery to boot from said devices, which is arguably riskier than flashing a recovery rom to the device, and keeping the operational recovery to flash the modifications to the os maybe...


Well, usually the XDA forums are a good place to start looking for ideas. I haven't visited that place in a while, but back when I visited frequently, I discovered that there are tons of custom ROMS available, and some are Open Source projects. It is a bit of a rabbit hole to go down. These days, CyanogenMod has a different name. But if you have the time and motivation, you can check out the source code, see how you can modify it, and make it run on your devices. I have 3 or 4 phones that I successfully flashed Cyanogen onto, using nothing more than the USB charging cable the phones came with, and instructions off XDA. But trying to port FreeBSD to an unsupported SoC - it may be possible to scrounge up some pointers, but you are largely on your own.

To add to what SirDice just said, some boards do require very specific wiring connections to flash the bootloader. Can't recall off the top of my head what they're called.


----------

