PabloPL / linux

Linux kernel source tree
Other
17 stars 0 forks source link

i9000b ISDB-T tuner #44

Open alpharde opened 3 years ago

alpharde commented 3 years ago

Hi, I've bought the brazilian variant of i9000 known as i9000b quite a long time ago. No obvious differences in hardware save for the included ISDB-T tuner which the other versions do not have. I have done very little kernel work and zero hardware-related development, also I have no idea how well supported this kind of hardware is on linux, I'll try to help identifying which device is this if needed.

xc-racer99 commented 3 years ago

Hi!

The first place to start is looking at the original stock files for the i9000b, then also at the CyanogenMod kernel.

A quick peek at the CM kernel doesn't bring up any references to the TV tuner. It does however show that a few things have different GPIOs (touchscreen, magnetic sensor, camera power, plus a few others) - so the i9000 kernel as it is won't work for you. If you want to try, let me know and I can try porting the differences to a kernel that you can then use.

It appears that there is a stock kernel uploaded to https://github.com/alexandrepossebom/linux_gt-i9000b By looking at it, the TV tuner (model fc8100) is i2c controlled (same port as the cameras), with a GPIO to switch between the two modes (why this is the case, I have no idea, the devices should have been smart enough to just look for their own address...). It then uses the TSI (Samsung Transport Stream Interface) to transfer the packet. This appears to be some sort of shared memory and tv stream decoder. Unfortunately, neither of the devices (TSI or fc8100) is in mainline linux. Forward-porting the 2.6.3x drivers might be possible, but would be a lot of work. I don't see a datasheet with a quick google, the best I've found is a press release about the chip in a different language (Google translated at https://translate.google.com/translate?hl=en&sl=zh-TW&u=http://www.digitimes.com.tw/tw/dt/n/shwnws.asp%3FCnlID%3D13%26id%3D161069%26ct%3D1&prev=search&pto=aue).

alpharde commented 3 years ago

Thanks for your interest, having a kernel that works on i9000b would be nice. I tried recently the last image at xc-racer99/u-boot-aries issue 34 and it does boot up to the console login, dunno if that's the same kernel.

The tuner is no big deal, bummer that the datasheet is pretty much lost.

eloydegen commented 3 years ago

This vendor is more widely known under their English name Silicon Motion. They had some PDFs on their website, but those aren't much more detailed than the press release, see: https://web.archive.org/web/20130405100814/http://www.siliconmotion.com/A3.2_Partnumber_Detail.php?sn=15

On Sun, Dec 20, 2020, 01:47 Glauber notifications@github.com wrote:

Thanks for your interest, having a kernel that works on i9000b would be nice. I tried recently the last image at xc-racer99/u-boot-aries/34 and it does boot up to the console login, dunno if that's the same kernel.

The tuner is no big deal, bummer that the datasheet is pretty much lost.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/PabloPL/linux/issues/44#issuecomment-748545887, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5P5NEKILFIH3CXJL2WLMTSVVCRVANCNFSM4VCODLIA .

xc-racer99 commented 3 years ago

Thanks for your interest, having a kernel that works on i9000b would be nice. I tried recently the last image at xc-racer99/u-boot-aries issue 34 and it does boot up to the console login, dunno if that's the same kernel.

The tuner is no big deal, bummer that the datasheet is pretty much lost.

Yeah, the i9000 kernel will boot, there just will be increased power draw and a few peripherals won't work properly (most notably the touchscreen).

I'll try to get a test kernel sometime in the next few days.

This vendor is more widely known under their English name Silicon Motion. They had some PDFs on their website, but those aren't much more detailed than the press release, see: https://web.archive.org/web/20130405100814/http://www.siliconmotion.com/A3.2_Partnumber_Detail.php?sn=15

Interesting, good to know. Yeah, there's not much in that info sheet there, just the specs and block diagram (which is somewhat useful, combine that with the 2.6.3x driver it wouldn't be too difficult to get an updated driver working, but only if one had the time and the HW and the know-how).

xc-racer99 commented 3 years ago

Alright, I've got a branch at https://github.com/xc-racer99/linux/tree/v5.9-all-devices with support for the i9000b added.

Basically, here's the differences:

I'm attaching a version that hopefully will work. Note that you'll either need to rename the galaxysb.dtb to galaxys.dtb or else make modifications to u-boot so it loads the proper one.

i9000B-Kernel.zip

alpharde commented 3 years ago

I have your uboot image installed on NAND (not sure how I did it, it was some time ago), wrote the pmOS image you built on an SD card and replaced vmlinuz-samsung-aries and s5pv210-galaxys.dtb with the kernel and dt within the zip file.

Got to the "postmarket demos" but the touchscreen did not work, the video was also a bit glitchy. Merry xmas, btw.

edit: Forgot to ask, can I have the files and config used to build the kernel & pmos image?

mirh commented 2 years ago

As a matter of fact, newer models of the same DTV chip manufacturer should have more or less more recent drivers https://github.com/LineageOS/android_kernel_lge_msm8974/tree/lineage-18.1/drivers/broadcast/oneseg A slightly similar variant also existed in the galaxy Y TV https://github.com/villavic/Samsung_GT-S5367/tree/master/common/drivers/staging/bcm21553/drivers/video/fc81xx