Skip to content

Commit

Permalink
Add initial support for Odroid N2+ (armbian#2130)
Browse files Browse the repository at this point in the history
* Add initial support for Odroid N2+
* Update C4 config and test booting
* Updates to C4, N2, N2+
- merge C4 and N2 legacy under meson64, same u-boot
- upgrade legacy kernel to meed DTB from mainline
- merge N2 and N2+, add a hack to display + in motd when N2+ is detected
- shortly spin N2 fan at startup
- merged N2 mainline and legacy boot script
- add upstream patches
* One of the regulators were breaking booting of Odroid N2
Co-authored-by: Werner <EvilOlaf@users.noreply.github.com>
  • Loading branch information
igorpecovnik authored and root committed Feb 4, 2022
1 parent afc8634 commit 989a531
Show file tree
Hide file tree
Showing 56 changed files with 7,921 additions and 80,517 deletions.
1 change: 0 additions & 1 deletion config/boards/odroidc4.conf
Expand Up @@ -5,6 +5,5 @@ BOOTCONFIG="odroid-c4_defconfig"
KERNEL_TARGET="legacy,current,dev"
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
ASOUND_STATE="asound.state.meson64"
FORCE_BOOTSCRIPT_UPDATE="yes"
BOOT_LOGO="desktop"
6 changes: 4 additions & 2 deletions config/boards/odroidn2.conf
@@ -1,10 +1,12 @@
# Amlogic S922X hexa core 2GB/4GB RAM SoC eMMC GBE USB3 SPI
# Amlogic S922X hexa core 2GB/4GB RAM SoC 1.8-2.4Ghz eMMC GBE USB3 SPI RTC
BOARD_NAME="Odroid N2"
BOARDFAMILY="meson-g12b"
BOOTCONFIG="odroidn2_config"
CPUMIN=1000000
CPUMAX=2400000
MODULES_LEGACY="media_clock firmware #decoder_common #stream_input #amvdec_mh264 #amvdec_h264 #amvdec_h264mvc #amvdec_h265 #amvdec_mmjpeg #amvdec_mpeg12 #amvdec_mmpeg4 #amvdec_mpeg4 #amvdec_vc1 #amvdec_vp9"
MODULES_BLACKLIST_LEGACY="spidev spi_gpio spi_bitbang"
KERNEL_TARGET="legacy,current,dev"
FULL_DESKTOP="yes"
FORCE_BOOTSCRIPT_UPDATE="yes"
ASOUND_STATE="asound.state.meson64"
BOOT_LOGO="desktop"
2 changes: 1 addition & 1 deletion config/bootscripts/boot-odroid-c4.ini
Expand Up @@ -108,7 +108,7 @@ if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef
if ext4load mmc ${devno}:1 0x44000000 /boot/armbianEnv.txt || fatload mmc ${devno}:1 0x44000000 armbianEnv.txt || ext4load mmc ${devno}:1 0x44000000 armbianEnv.txt; then env import -t 0x44000000 ${filesize}; fi

# Boot Args
setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw rootfstype=${rootfstype} ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} cvbscable=${cvbscable} overscan=${overscan} ${hid_quirks} monitor_onoff=${monitor_onoff} logo=osd0,loaded ${cec_enable} ${bootsplash} sdrmode=${sdrmode}"
setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw rootfstype=${rootfstype} ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} cvbscable=${cvbscable} overscan=${overscan} ${hid_quirks} monitor_onoff=${monitor_onoff} logo=osd0,loaded ${cec_enable} ${bootsplash} sdrmode=${sdrmode} consoleblank=0"

# Set load addresses
setenv dtb_loadaddr "0x1000000"
Expand Down
57 changes: 39 additions & 18 deletions config/bootscripts/boot-odroid-n2.ini
Expand Up @@ -8,8 +8,19 @@ ODROIDN2-UBOOT-CONFIG
# Display splash logo
setenv bootlogo "false"

# legacy and mainline kernel diff
if ext4load mmc ${devno}:1 0x00000000 "/boot/.next" || fatload mmc ${devno}:1 0x00000000 ".next" || ext4load mmc ${devno}:1 0x00000000 ".next"; then
echo "Found mainline kernel configuration"
setenv uartconsole "ttyAML0,115200n8"
setenv kernelimage "uImage"
else
echo "Found legacy kernel configuration"
setenv uartconsole "ttyS0,115200n8"
setenv kernelimage "zImage"
fi

# Default Console Device Setting
setenv condev "console=ttyS0,115200n8 console=tty1 loglevel=1" # on both
setenv condev "console=${uartconsole} console=tty1 loglevel=1" # on both

# Auto Detection of Monitor settings based on your Screen information
setenv display_autodetect "true"
Expand Down Expand Up @@ -68,18 +79,23 @@ setenv voutmode "hdmi"
# HPD enable/disable option
setenv disablehpd "false"

# max cpu frequency for big core, A73 in MHz unit
# setenv max_freq_a73 "2004" # 2.004 GHz
# setenv max_freq_a73 "1992" # 1.992 GHz
# setenv max_freq_a73 "1908" # 1.908 GHz
setenv max_freq_a73 "1800" # 1.8 GHz, default value
# setenv max_freq_a73 "1704" # 1.704 GHz

# max cpu frequency for little core, A53 in MHz unit
# setenv max_freq_a53 "1992" # 1.992 GHz
setenv max_freq_a53 "1896" # 1.896 GHz, default value
# setenv max_freq_a53 "1704" # 1.704 GHz

# max cpu frequency in MHz unit
if test "${variant}" = "n2_plus"; then
setenv fdtfile meson-g12b-odroid-n2-plus.dtb
setenv max_freq_a73 "2208"
setenv max_freq_a53 "1908"
else
setenv fdtfile meson-g12b-odroid-n2.dtb
setenv max_freq_a73 "1800"
setenv max_freq_a53 "1896"
fi
# A73
# N2: 500/667/1000/1200/1398/1512/1608/1704/1800 (Stock)/1908/2004"
# N2 Plus: 500/667/1000/1200/1398/1512/1608/1704/1800/1908/2016/2100/2208 (Stock)/2304/2400

# A53
# N2: 100/250/500/667/1000/1200/1398/1512/1608/1704/1896 (Stock)/1992
# N2 Plus: 500/667/1000/1200/1398/1512/1608/1704/1800/1908 (Stock)/2016

# max cpu-cores
# Note:
Expand All @@ -99,7 +115,7 @@ if test "${hdmimode}" = "custombuilt"; then setenv cmode "modeline=${modeline}";
if ext4load mmc ${devno}:1 0x44000000 /boot/armbianEnv.txt || fatload mmc ${devno}:1 0x44000000 armbianEnv.txt || ext4load mmc ${devno}:1 0x44000000 armbianEnv.txt; then env import -t 0x44000000 ${filesize}; fi

# Boot Args
setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw rootfstype=${rootfstype} ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} ${bootsplash} cvbscable=${cvbscable} overscan=${overscan}"
setenv bootargs "root=${rootdev} rootwait rootflags=data=writeback rw rootfstype=${rootfstype} ${condev} ${amlogic} no_console_suspend fsck.repair=yes net.ifnames=0 elevator=noop hdmimode=${hdmimode} cvbsmode=576cvbs max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} maxcpus=${maxcpus} voutmode=${voutmode} ${cmode} disablehpd=${disablehpd} ${bootsplash} cvbscable=${cvbscable} overscan=${overscan} consoleblank=0"

# Set load addresses
setenv dtb_loadaddr "0x1000000"
Expand All @@ -108,12 +124,17 @@ setenv loadaddr "0x1B00000"
setenv initrd_loadaddr "0x3700000"

# Load kernel, dtb and initrd
ext4load mmc ${devno}:1 ${k_addr} boot/zImage
ext4load mmc ${devno}:1 ${dtb_loadaddr} boot/dtb/amlogic/meson64_odroidn2.dtb
ext4load mmc ${devno}:1 ${k_addr} boot/${kernelimage}
ext4load mmc ${devno}:1 ${dtb_loadaddr} boot/dtb/amlogic/${fdtfile}
ext4load mmc ${devno}:1 ${initrd_loadaddr} boot/uInitrd

if test "${kernelimage}" = "zImage"; then
fdt addr ${dtb_loadaddr}
# unzip the kernel
unzip ${k_addr} ${loadaddr}

# boot
# boot legacy kernel
booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}
else
# boot mainline kernel
bootm ${k_addr} ${initrd_loadaddr} ${dtb_loadaddr}
fi

0 comments on commit 989a531

Please sign in to comment.