Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

How do we force Tesla to publish their changes to GPL code ?

This site may earn commission on affiliate links.
It appears as though Tesla is using at least some GPL'd software in their vehicles. The Linux kernel, for starters.

The GPL requires that anyone who uses code covered by the GPL release the changes or enhancements they've made to the code to the users who purchased the product that uses the code.

Tesla appears to be negligent in this regard.

How do we force Tesla to release all their code changes ?

My first thought is to utilize social media to do this. Elon seems responsive on Twitter. I don't post on Twitter. Could someone with a large Twitter following ask Elon about releasing code ?

If no response, I suggest Tweeting prominent members of the open source community. Maybe Linus Torvalds ? Greg Kroah-Hartman ? I'm sure that members of the community think it is only fair that Tesla a) acknowledge all the work that they've contributed to Tesla's cars and b) contribute their changes back to the community, in kind.

As far as I am concerned, Tesla has had more than enough time to share their changes. I'd be interested in making a pretty big media fuss about this until they comply.

Violations of the GNU Licenses - GNU Project - Free Software Foundation
 
Last edited:
FYI...
teslamotors/buildroot
teslamotors/linux

grep -r tesla *
arch/arm/mach-omap2/omap_hwmod_44xx_data.c: .clkdm_name = "tesla_clkdm",
arch/arm/mach-omap2/omap_hwmod_44xx_data.c: .clkdm_name = "tesla_clkdm",
arch/arm/mach-omap2/clockdomains44xx_data.c: { .clkdm_name = "tesla_clkdm" },
arch/arm/mach-omap2/clockdomains44xx_data.c: { .clkdm_name = "tesla_clkdm" },
arch/arm/mach-omap2/clockdomains44xx_data.c:static struct clkdm_dep tesla_wkup_sleep_deps[] = {
arch/arm/mach-omap2/clockdomains44xx_data.c:static struct clockdomain tesla_44xx_clkdm = {
arch/arm/mach-omap2/clockdomains44xx_data.c: .name = "tesla_clkdm",
arch/arm/mach-omap2/clockdomains44xx_data.c: .pwrdm = { .name = "tesla_pwrdm" },
arch/arm/mach-omap2/clockdomains44xx_data.c: .wkdep_srcs = tesla_wkup_sleep_deps,
arch/arm/mach-omap2/clockdomains44xx_data.c: .sleepdep_srcs = tesla_wkup_sleep_deps,
arch/arm/mach-omap2/clockdomains44xx_data.c: &tesla_44xx_clkdm,
arch/arm/mach-omap2/powerdomains44xx_data.c:/* tesla_44xx_pwrdm: Tesla processor power domain */
arch/arm/mach-omap2/powerdomains44xx_data.c:static struct powerdomain tesla_44xx_pwrdm = {
arch/arm/mach-omap2/powerdomains44xx_data.c: .name = "tesla_pwrdm",
arch/arm/mach-omap2/powerdomains44xx_data.c: [0] = PWRSTS_RET, /* tesla_edma */
arch/arm/mach-omap2/powerdomains44xx_data.c: [1] = PWRSTS_OFF_RET, /* tesla_l1 */
arch/arm/mach-omap2/powerdomains44xx_data.c: [2] = PWRSTS_OFF_RET, /* tesla_l2 */
arch/arm/mach-omap2/powerdomains44xx_data.c: [0] = PWRSTS_ON, /* tesla_edma */
arch/arm/mach-omap2/powerdomains44xx_data.c: [1] = PWRSTS_ON, /* tesla_l1 */
arch/arm/mach-omap2/powerdomains44xx_data.c: [2] = PWRSTS_ON, /* tesla_l2 */
arch/arm/mach-omap2/powerdomains44xx_data.c: &tesla_44xx_pwrdm,
arch/arm/boot/dts/tegra30-tesla-cid.dts: compatible = "nvidia,tegra-audio-tesla-cid";
arch/arm/boot/dts/tegra30-tesla-cid.dts: compatible = "tesla,userspi";
arch/arm/boot/dts/tegra30-tesla-cid.dts: compatible = "tesla,userspi";
arch/arm/boot/dts/Makefile: tegra20-tesla-ic.dtb \
arch/arm/boot/dts/Makefile: tegra30-tesla-cid.dtb
arch/arm/boot/dts/tegra20-tesla-ic.dts: compatible = "tesla,nvidia-graphics-carveout";
arch/arm/boot/dts/tegra20-tesla-ic.dts: compatible = "tesla,nvidia-fb-carveout";
arch/arm/configs/ts001_defconfig:CONFIG_INITRAMFS_SOURCE="tesla.cpio"
codethink/documents/build.txt:$ make Image zImage tegra30-tesla-cid.dtb
compat26/pdk25_023/drivers/media/tegra/nvavp/nvavp_dev.c:/* Super hacky: tesla user is always uid 1111 */
compat26/tegra/core.c:RESERVEDMEM_OF_DECLARE(tegra26_gfx, "tesla,nvidia-graphics-carveout", gfx_carveout_setup);
compat26/tegra/core.c:RESERVEDMEM_OF_DECLARE(tegra26_fb, "tesla,nvidia-fb-carveout", fb_carveout_setup);
compat26/tegra/core.c:RESERVEDMEM_OF_DECLARE(tegra26_fb2, "tesla,nvidia-fb2-carveout", fb2_carveout_setup);
drivers/spi/spidev.c: { .compatible = "tesla,userspi", },
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: /* tesla state */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: /* tesla state */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x1fe21); /* 0001ffff tesla UNK0FAC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 000000ff tesla UNK1940 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK0D7C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x7f); /* 000000ff tesla UNK0FFC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK0D7C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK0F8C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x3ff); /* 000003ff tesla UNK0D68 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x7ff); /* 000007ff tesla UNK0D68 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1924 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 2, 0x88); /* 000001ff tesla UNK19D8 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1924 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 2); /* 00000003 tesla UNK143C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 2, 0x04000000); /* 07ffffff tesla UNK0D6C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1108 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1968 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 0fffffff tesla UNK1104 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK151C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 3); /* 00000003 tesla UNK1100 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK13A4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000fff tesla UNK1318 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x20); /* 0000ffff tesla UNK129C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x3ff); /* 3ff tesla UNK0D68 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x7ff); /* 7ff tesla UNK0D68 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK0FD8 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, acnt, 0); /* 1 tesla UNK1000 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1118? */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK111C? */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK0FB8 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x15); /* 000000ff tesla UNK128C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1924 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1658 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK165C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1668 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK0F90 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 2); /* 00000003 tesla UNK143C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 2, 0x04000000); /* 07ffffff tesla UNK0D6C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000007 tesla UNK0FB4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK1110 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1928 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK187C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 5); /* 0000000f tesla UNK1220 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 000000ff tesla UNK1A20 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 3); /* 00000003 tesla UNK1100 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 3); /* 00000003 tesla UNK1100 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x3ff); /* 000003ff tesla UNK0D68 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x7ff); /* 000007ff tesla UNK0D68 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x11); /* 000000ff tesla UNK1968 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x11); /* 000000ff tesla UNK1968 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 2); /* 00000003 tesla UNK143C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic2); /* 001fffff tesla UNK0F78 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK15B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 2); /* 00000003 tesla UNK143C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK15B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1900 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK0FB0 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK0FB0 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK15B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK19CC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic2); /* 001fffff tesla UNK0F78 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK12E4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1140 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1430 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK15C4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1140 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic3); /* 00007fff tesla UNK141C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic3); /* 7fff tesla UNK141C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK13A0 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK19CC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 3); /* 00000003 tesla UNK16B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1298 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK16B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic2); /* 001fffff tesla UNK0F78 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic1); /* 3ff/7ff tesla UNK0D68 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK15B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 3); /* 00000003 tesla UNK15AC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic2); /* 001fffff tesla UNK0F78 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 2); /* 00000003 tesla UNK143C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK15B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, magic2); /* 001fffff tesla UNK0F78 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK0FB0 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK15B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK19CC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 0000000f tesla UNK15C8 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A3C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A34? */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 turing UNK37C tesla UNK1690 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 turing UNK32C tesla UNK0F94 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A34? */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1664 / turing UNK03E8 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A34 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK0F98 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1668 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1658 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 00000001 tesla UNK165C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x30201000); /* ffffffff tesla UNK1670 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x70605040); /* ffffffff tesla UNK1670 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0xb8a89888); /* ffffffff tesla UNK1670 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0xf8e8d8c8); /* ffffffff tesla UNK1670 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x80); /* ffffffff tesla UNK1404 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x80007004); /* ffffffff tesla UNK12B0 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0xc0); /* 00007fff tesla UNK152C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x1000); /* 0000ffff tesla UNK0D60 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A30 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 2, 0x1000); /* 7fff tesla UNK141C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x1fe21); /* 0003ffff tesla UNK0FAC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000001 tesla UNK1534 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0x1fe21); /* 1ffff/3ffff[NVA0+] tesla UNk0FAC */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* ffffffff tesla UNK1A34 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 1); /* 0000001f tesla UNK169C */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 3); /* 00000003 tesla UNK16B4 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 4); /* ffffffff tesla UNK1400 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK1928 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c: xf_emit(ctx, 1, 0); /* 00000003 tesla UNK0F90 */
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c: * unknown DMA slot on tesla? */
drivers/soc/tegra/tesla-boardrev.c:#include <soc/tegra/tesla.h>
drivers/soc/tegra/Makefile:eek:bj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tesla-boardrev.o
drivers/clk/tegra/clk-tegra-audio.c:#include <soc/tegra/tesla.h>
drivers/pinctrl/pinctrl-pseudo.c:MODULE_AUTHOR("Joshua Neal <[email protected]>");
sound/soc/tegra/Makefile:snd-soc-tegra-tesla-cid-objs := tegra_tesla_cid.o
sound/soc/tegra/Makefile:eek:bj-$(CONFIG_SND_SOC_TEGRA_TESLA_CID) += snd-soc-tegra-tesla-cid.o
sound/soc/tegra/tegra_tesla_cid.c: * tegra_tesla_cid.c - Tegra machine ASoC driver for Tesla CID.
sound/soc/tegra/tegra_tesla_cid.c:#include <soc/tegra/tesla.h>
sound/soc/tegra/tegra_tesla_cid.c: { .compatible = "nvidia,tegra-audio-tesla-cid", },
sound/soc/tegra/tegra_tesla_cid.c: .name = "tegra-tesla-cid",
[me@bigboy linux]$
[me@bigboy linux]$
[me@bigboy linux]$
[me@bigboy linux]$
[me@bigboy linux]$
[me@bigboy linux]$ grep -r Tesla *
arch/arm/mach-omap2/powerdomains7xx_data.c:/* dsp1_7xx_pwrdm: Tesla processor power domain */
arch/arm/mach-omap2/powerdomains54xx_data.c:/* dsp_54xx_pwrdm: Tesla processor power domain */
arch/arm/mach-omap2/powerdomains44xx_data.c:/* tesla_44xx_pwrdm: Tesla processor power domain */
arch/arm/boot/dts/tegra30-tesla-cid.dts: model = "NVIDIA Tegra30 Tesla Central Instrument Display";
arch/arm/boot/dts/tegra20-tesla-ic.dts: model = "NVIDIA Tegra20 Tesla Instrument Cluster";
compat26/pdk25_023/tegra26/board-p1852-panel.c:#if 1 /* Tesla MCU */
compat26/pdk25_023/tegra26/board-p1852-panel.c:#if 1 /* Tesla MCU */
compat26/tegra/kfuse.c: * the HDMI block, and most likely not required for the Tesla hardware.
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0595, "Tesla T10 Processor" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x068f, "Tesla T10 Processor" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0697, "Tesla M1060" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0714, "Tesla M1060" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0743, "Tesla M1060" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0771, "Tesla C2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0772, "Tesla C2070" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x088f, "Tesla X2070" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0773, "Tesla S2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x082f, "Tesla M2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0840, "Tesla X2070" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0842, "Tesla M2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0846, "Tesla M2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0866, "Tesla M2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0907, "Tesla M2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x091e, "Tesla M2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x088e, "Tesla X2090" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0891, "Tesla X2090" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0974, "Tesla X2090" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x098d, "Tesla X2090" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x10de, 0x0911, "Tesla C2050" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x0197, "Tesla C870" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x05e7, "Tesla C1060", nvkm_device_pci_10de_05e7 },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x06d1, "Tesla C2050 / C2070", nvkm_device_pci_10de_06d1 },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x06d2, "Tesla M2070", nvkm_device_pci_10de_06d2 },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x06de, "Tesla T20 Processor", nvkm_device_pci_10de_06de },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x06df, "Tesla M2070-Q" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1021, "Tesla K20Xm" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1022, "Tesla K20c" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1023, "Tesla K40m" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1024, "Tesla K40c" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1026, "Tesla K20s" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1027, "Tesla K40st" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1028, "Tesla K20m" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1029, "Tesla K40s" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x102a, "Tesla K40t" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x102d, "Tesla K80" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1091, "Tesla M2090", nvkm_device_pci_10de_1091 },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1094, "Tesla M2075" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1096, "Tesla C2075", nvkm_device_pci_10de_1096 },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x118f, "Tesla K10" },
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c: { 0x1194, "Tesla K8" },
drivers/gpu/drm/nouveau/nouveau_drm.h:#define DRIVER_DESC "nVidia Riva/TNT/GeForce/Quadro/Tesla"
drivers/soc/tegra/tesla-boardrev.c: * Copyright (C) 2017 Tesla Motors, Inc.
drivers/clk/tegra/clk-tegra-audio.c: /* Override audio rate with Tesla boardrev value */
drivers/pinctrl/pinctrl-pseudo.c: * Copyright (C) 2016 Tesla Motors, Inc.
include/soc/tegra/tesla.h: * Copyright (C) 2017 Tesla Motors, Inc.
include/soc/tegra/tesla.h:/* Used communicate Tesla boardrev-specific audio rate to multiple places */
sound/soc/tegra/tegra_tesla_cid.c: * tegra_tesla_cid.c - Tegra machine ASoC driver for Tesla CID.
sound/soc/tegra/tegra_tesla_cid.c:MODULE_DESCRIPTION("Tesla CID Tegra machine ASoC driver");
sound/soc/tegra/Kconfig: tristate "SoC Audio support for Tesla CID board"
sound/soc/tegra/Kconfig: Say Y or M here if you want to add support for SoC audio on Tesla
sound/core/Kconfig: Platform specific for Tesla's CID. This will greatly reduce CPU
 
Last edited:
[me@bigboy coreboot]$ grep -r tesla *
util/xcompile/xcompile: TCLIST="aarch64 aarch64-tesla"
[me@bigboy coreboot]$ grep -r Tesla *
src/soc/turbo/trav/netspeed_c.c: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/scs_helpers_v2.c: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/sms_helpers.h: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/boot_control.h: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/scs_helpers.h: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/gpt.h: * Copyright (C) 2018 Tesla Inc.
src/soc/turbo/trav/boot_control.c: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/sms_helpers.c: * Copyright (C) 2017 Tesla Inc.

It appears as though Tesla uses coreboot.
 
[me@bigboy coreboot]$ grep -r tesla *
util/xcompile/xcompile: TCLIST="aarch64 aarch64-tesla"
[me@bigboy coreboot]$ grep -r Tesla *
src/soc/turbo/trav/netspeed_c.c: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/scs_helpers_v2.c: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/sms_helpers.h: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/boot_control.h: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/scs_helpers.h: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/include/soc/gpt.h: * Copyright (C) 2018 Tesla Inc.
src/soc/turbo/trav/boot_control.c: * Copyright (C) 2017 Tesla Inc.
src/soc/turbo/trav/sms_helpers.c: * Copyright (C) 2017 Tesla Inc.

It appears as though Tesla uses coreboot.

We laughed at Porsche but Tesla are also using turbo...
 
As Tesla does not "sell" their software, but only modifies for "internal use" I'm not sure they are violating the GPL.

IF Tesla finds a bug in the Linux software, do they notify the Linux Foundation of this suspected bug?
Ethical vs License behavior - are they different - does it matter?

side note: Members - Automotive Grade Linux
I don't see Tesla name.

interesting search
tesla site:linuxfoundation.org

Sadly, I don't shed much insite. I'm not a programer. I have attended Linux Foundation meetings a few times.
I did observe Google and Microsoft starting to participate in the Linux Foundation. I do believe Open Source.

I also believe I see many powerful companies trying to destroy Tesla.
(anyone know if Linus owns a Tesla?)

I really would just like to end WARS - on drugs for sure and certainly all those places we are killing men, women & children. I see no benefit and yet those wars go on and on and on...
 
side note: no such thing as GPL code. So changes of GPL code makes no sense.

GPL - General Public License
Short for General Public License, the license that accompanies some open source software that details how the software and its accompany source code can be freely copied, distributed and modified.