Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch Add kernel config for Tegra K1 "Nyan Big" board, as...
details: https://anonhg.NetBSD.org/src/rev/35e4f2d70440
branches: trunk
changeset: 340094:35e4f2d70440
user: jmcneill <jmcneill%NetBSD.org@localhost>
date: Sat Aug 22 15:10:04 2015 +0000
description:
Add kernel config for Tegra K1 "Nyan Big" board, as found in the Acer
Chromebook 13 (CB5-311).
diffstat:
sys/arch/arm/nvidia/files.tegra | 6 +-
sys/arch/evbarm/conf/NYAN-BIG | 149 ++++++++++++++++++++++++++++++++++
sys/arch/evbarm/tegra/tegra_machdep.c | 41 ++++++++-
sys/arch/evbarm/tegra/tegra_start.S | 6 +-
4 files changed, 196 insertions(+), 6 deletions(-)
diffs (281 lines):
diff -r 5f57fea4c034 -r 35e4f2d70440 sys/arch/arm/nvidia/files.tegra
--- a/sys/arch/arm/nvidia/files.tegra Sat Aug 22 14:47:05 2015 +0000
+++ b/sys/arch/arm/nvidia/files.tegra Sat Aug 22 15:10:04 2015 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: files.tegra,v 1.15 2015/08/01 21:20:11 jmcneill Exp $
+# $NetBSD: files.tegra,v 1.16 2015/08/22 15:10:04 jmcneill Exp $
#
# Configuration info for NVIDIA Tegra ARM Peripherals
#
@@ -132,4 +132,6 @@
defflag opt_tegra.h SOC_TEGRA124: SOC_TEGRAK1
# Board parameters
-defflag opt_tegra.h BOARD_JETSONTK1
+defflag opt_tegra.h TEGRA_UBOOT
+defflag opt_tegra.h BOARD_JETSONTK1: TEGRA_UBOOT
+defflag opt_tegra.h BOARD_NYAN_BIG
diff -r 5f57fea4c034 -r 35e4f2d70440 sys/arch/evbarm/conf/NYAN-BIG
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/evbarm/conf/NYAN-BIG Sat Aug 22 15:10:04 2015 +0000
@@ -0,0 +1,149 @@
+#
+# $NetBSD: NYAN-BIG,v 1.1 2015/08/22 15:10:04 jmcneill Exp $
+#
+# Chrome OS nyan_big board - Tegra K1
+# - Acer Chromebook 13 (CB5-311)
+#
+
+include "arch/evbarm/conf/std.tegra"
+include "arch/evbarm/conf/GENERIC.common"
+
+options BOOT_ARGS="\"console=fb\""
+
+options CPU_CORTEXA15
+options SOC_TEGRA124
+options BOARD_NYAN_BIG
+#options CPUFREQ_BOOT=xxx
+options MULTIPROCESSOR
+#options MEMSIZE=2048
+
+options DIAGNOSTIC # internal consistency checks
+#options DEBUG
+#options LOCKDEBUG
+#options PMAP_DEBUG # Enable pmap_debug_level code
+#options IPKDB # remote kernel debugging
+#options VERBOSE_INIT_ARM # verbose bootstraping messages
+makeoptions DEBUG="-g" # compile full symbol table
+makeoptions COPY_SYMTAB=1
+
+config netbsd root on ? type ?
+
+mainbus0 at root
+cpu* at mainbus?
+
+# A15 core devices
+armperiph0 at mainbus?
+armgic0 at armperiph? # Interrupt Controller
+armgtmr0 at armperiph? # ARM Generic Timer
+
+# On-board I/O
+tegraio0 at mainbus?
+
+# Memory controller
+tegramc0 at tegraio? # MC
+
+# Power management controller
+tegrapmc0 at tegraio? # PMC
+
+# Clock and Reset controller
+tegracar0 at tegraio? # CAR
+
+# GPIO controller
+tegragpio0 at tegraio? # GPIO
+gpio* at gpiobus?
+#gpiobutton0 at gpio16 offset 0 mask 1 flag 0x01 # Power button
+#gpiorfkill0 at gpio23 offset 7 mask 1 # WiFi enable
+
+# Timers
+tegratimer0 at tegraio? # Timers
+
+# MPIO / Pinmux
+tegrampio0 at tegraio? # MPIO
+
+# XUSB PADCTL
+tegraxusbpad0 at tegraio? # XUSB PADCTL
+
+# PCIE
+tegrapcie0 at tegraio? # PCIE
+pci* at tegrapcie0
+ppb* at pci? dev ? function ?
+pci* at ppb?
+
+# UART
+com0 at tegraio? port 0 # UART-A
+options CONSADDR=0x70006000, CONSPEED=115200
+
+# I2C
+tegrai2c0 at tegraio? port 0 # I2C1
+iic0 at tegrai2c0
+titemp0 at iic0 addr 0x4c # TI TMP451
+tegrai2c1 at tegraio? port 1 # I2C2
+iic1 at tegrai2c1
+tegrai2c2 at tegraio? port 2 # I2C3
+iic2 at tegrai2c2
+tegrai2c3 at tegraio? port 3 # I2C4
+iic3 at tegrai2c3
+ddc0 at iic3 addr 0x50 # HDMI DDC
+tegrai2c4 at tegraio? port 4 # I2C5
+iic4 at tegrai2c4
+
+# RTC
+tegrartc0 at tegraio? # RTC
+
+# SDMMC
+#sdhc0 at tegraio? port 0 # SDMMC1 (WiFi/BT)
+#sdmmc0 at sdhc0
+sdhc2 at tegraio? port 2 # SDMMC3 (SD card)
+sdmmc2 at sdhc2
+sdhc3 at tegraio? port 3 # SDMMC4 (eMMC)
+sdmmc3 at sdhc3
+
+ld0 at sdmmc3 # eMMC
+ld1 at sdmmc2 # SD card
+
+# HDA
+hdaudio* at tegraio? # HDA
+hdafg* at hdaudiobus?
+audio* at audiobus?
+options HDAUDIOVERBOSE
+options HDAUDIO_32BIT_ACCESS
+options HDAUDIO_ENABLE_HDMI
+options HDAUDIO_ENABLE_DISPLAYPORT
+
+# Host1x subsystem
+tegrahost1x0 at tegraio? # HOST1X
+
+# Display controller
+tegradc0 at tegraio? port 0 # DISPLAYA
+tegradc1 at tegraio? port 1 # DISPLAYB
+genfb* at tegradc?
+wsdisplay* at genfb?
+options VCONS_DRAW_INTR
+options WSEMUL_VT100
+options WS_DEFAULT_FG=WSCOL_WHITE
+options WS_DEFAULT_BG=WSCOL_BLACK
+options WS_KERNEL_FG=WSCOL_GREEN
+options WS_KERNEL_BG=WSCOL_BLACK
+options WSDISPLAY_COMPAT_PCVT
+options WSDISPLAY_COMPAT_SYSCONS
+options WSDISPLAY_COMPAT_USL
+options WSDISPLAY_COMPAT_RAWKBD
+options WSDISPLAY_DEFAULTSCREENS=4
+pseudo-device wsmux
+pseudo-device wsfont
+
+# HDMI
+tegrahdmi0 at tegraio? # HDMI
+tegracec0 at tegraio? # HDMI CEC
+hdmicec* at hdmicecbus?
+
+# USB 2.0
+ehci0 at tegraio? port 0 # USB1
+ehci1 at tegraio? port 1 # USB2
+ehci2 at tegraio? port 2 # USB3
+usb* at ehci?
+
+include "dev/usb/usbdevices.config"
+midi* at midibus?
+
+cinclude "arch/evbarm/conf/NYAN-BIG.local"
diff -r 5f57fea4c034 -r 35e4f2d70440 sys/arch/evbarm/tegra/tegra_machdep.c
--- a/sys/arch/evbarm/tegra/tegra_machdep.c Sat Aug 22 14:47:05 2015 +0000
+++ b/sys/arch/evbarm/tegra/tegra_machdep.c Sat Aug 22 15:10:04 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_machdep.c,v 1.18 2015/08/01 21:20:47 jmcneill Exp $ */
+/* $NetBSD: tegra_machdep.c,v 1.19 2015/08/22 15:10:04 jmcneill Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra_machdep.c,v 1.18 2015/08/01 21:20:47 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra_machdep.c,v 1.19 2015/08/22 15:10:04 jmcneill Exp $");
#include "opt_tegra.h"
#include "opt_machdep.h"
@@ -95,7 +95,9 @@
BootConfig bootconfig;
char bootargs[TEGRA_MAX_BOOT_STRING] = "";
char *boot_args = NULL;
+#ifdef TEGRA_UBOOT
u_int uboot_args[4] = { 0 }; /* filled in by tegra_start.S (not in bss) */
+#endif
extern char KERNEL_BASE_phys[];
#define KERNEL_BASE_PHYS ((paddr_t)KERNEL_BASE_phys)
@@ -244,8 +246,10 @@
DPRINTF(" ok\n");
+#ifdef TEGRA_UBOOT
DPRINTF("uboot: args %#x, %#x, %#x, %#x\n",
uboot_args[0], uboot_args[1], uboot_args[2], uboot_args[3]);
+#endif
cpu_reset_address = tegra_pmc_reset;
@@ -437,4 +441,37 @@
prop_dictionary_set_cstring(dict, "display-device", "tegradc1");
}
#endif
+
+#ifdef BOARD_NYAN_BIG
+ if (device_is_a(self, "sdhc")
+ && device_is_a(device_parent(self), "tegraio")) {
+ struct tegraio_attach_args * const tio = aux;
+ const struct tegra_locators * const loc = &tio->tio_loc;
+
+ if (loc->loc_port == 2) {
+ prop_dictionary_set_cstring(dict, "cd-gpio", "V2");
+ prop_dictionary_set_cstring(dict, "power-gpio", "R0");
+ }
+ }
+
+ if (device_is_a(self, "ehci")
+ && device_is_a(device_parent(self), "tegraio")) {
+ struct tegraio_attach_args * const tio = aux;
+ const struct tegra_locators * const loc = &tio->tio_loc;
+
+ if (loc->loc_port == 0) {
+ prop_dictionary_set_cstring(dict, "vbus-gpio", "N4");
+ } else if (loc->loc_port == 2) {
+ prop_dictionary_set_cstring(dict, "vbus-gpio", "N5");
+ }
+ }
+
+ if (device_is_a(self, "tegrahdmi")) {
+ prop_dictionary_set_cstring(dict, "hpd-gpio", "N7");
+ prop_dictionary_set_cstring(dict, "pll-gpio", "H7");
+ prop_dictionary_set_cstring(dict, "power-gpio", "K6");
+ prop_dictionary_set_cstring(dict, "ddc-device", "ddc0");
+ prop_dictionary_set_cstring(dict, "display-device", "tegradc1");
+ }
+#endif
}
diff -r 5f57fea4c034 -r 35e4f2d70440 sys/arch/evbarm/tegra/tegra_start.S
--- a/sys/arch/evbarm/tegra/tegra_start.S Sat Aug 22 14:47:05 2015 +0000
+++ b/sys/arch/evbarm/tegra/tegra_start.S Sat Aug 22 15:10:04 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_start.S,v 1.6 2015/05/13 11:21:38 skrll Exp $ */
+/* $NetBSD: tegra_start.S,v 1.7 2015/08/22 15:10:04 jmcneill Exp $ */
/*-
* Copyright (c) 2014, 2015 The NetBSD Foundation, Inc.
@@ -43,7 +43,7 @@
#include <arm/nvidia/tegra_reg.h>
#include <evbarm/tegra/platform.h>
-RCSID("$NetBSD: tegra_start.S,v 1.6 2015/05/13 11:21:38 skrll Exp $")
+RCSID("$NetBSD: tegra_start.S,v 1.7 2015/08/22 15:10:04 jmcneill Exp $")
#if defined(VERBOSE_INIT_ARM)
#define XPUTC(n) mov r0, n; bl xputc
@@ -92,6 +92,7 @@
/* Move into supervisor mode and disable IRQs/FIQs. */
cpsid if, #PSR_SVC32_MODE
+#ifdef TEGRA_UBOOT
/*
* Save any arguments passed to us.
*/
@@ -116,6 +117,7 @@
teq r0, #0
bne 2b
1:
+#endif
/*
* Turn on the SMP bit
Home |
Main Index |
Thread Index |
Old Index