Skip to content

Instantly share code, notes, and snippets.

@lupyuen
Created December 16, 2022 04:18
Show Gist options
  • Save lupyuen/61a1374c9ea6a1b7826488da688e8c6c to your computer and use it in GitHub Desktop.
Save lupyuen/61a1374c9ea6a1b7826488da688e8c6c to your computer and use it in GitHub Desktop.
NuttX Kernel PinePhone TCON0 Tested OK with Graphics Logging Disabled. See https://lupyuen.github.io/articles/dsi3
DRAM: 2048 MiB
Trying to boot from MMC1
NOTICE: BL31: v2.2(release):v2.2-904-gf9ea3a629
NOTICE: BL31: Built : 15:32:12, Apr 9 2020
NOTICE: BL31: Detected Allwinner A64/H64/R18 SoC (1689)
NOTICE: BL31: Found U-Boot DTB at 0x4064410, model: PinePhone
NOTICE: PSCI: System suspend is unavailable
U-Boot 2020.07 (Nov 08 2020 - 00:15:12 +0100)
DRAM: 2 GiB
MMC: Device 'mmc@1c11000': seq 1 is in use by 'mmc@1c10000'
mmc@1c0f000: 0, mmc@1c10000: 2, mmc@1c11000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment
starting USB...
No working controllers found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
653 bytes read in 3 ms (211.9 KiB/s)
## Executing script at 4fc00000
gpio: pin 114 (gpio 114) value is 1
172529 bytes read in 11 ms (15 MiB/s)
Uncompressed size: 10321920 = 0x9D8000
36162 bytes read in 4 ms (8.6 MiB/s)
1078500 bytes read in 50 ms (20.6 MiB/s)
## Flattened Device Tree blob at 4fa00000
Booting using the fdt blob at 0x4fa00000
Loading Ramdisk to 49ef8000, end 49fff4e4 ... OK
Loading Device Tree to 0000000049eec000, end 0000000049ef7d41 ... OK
Starting kernel ...
- Ready to Boot CPU
- Boot from EL2
- Boot from EL1
- Boot to C runtime for OS Initialize
psci_detect: Detected PSCI v1.1
nx_start: Entry
up_allocate_heap: heap_start=0x0x40a58000, heap_size=0x75a8000
gic_validate_dist_version: GICv2 detected
up_timer_initialize: up_timer_initialize: cp15 timer(s) running at 24.00MHz, cycle 24000
uart_register: Registering /dev/console
uart_register: Registering /dev/ttyS0
work_start_highpri: Starting high-priority kernel worker thread(s)
nx_start_application: Starting init thread
lib_cxx_initialize: _sinit: 0x400e8000 _einit: 0x400e8000
nsh: sysinit: fopen failed: 2
nshn:x _msktfaarttf:s :C PcUo0m:m aBnedg innonti nfgo uInddl
e
L
oNoupt
t
Shell (NSH) NuttX-11.0.0-pinephone
nsh>
nsh>
nsh> uname -a
NuttX 11.0.0-pinephone 893b147 Dec 14 2022 23:01:27 arm64 pinephone
nsh>
nsh> hello 0
task_spawn: name=hello entry=0x400a0940 file_actions=0x40a5da40 attr=0x40a5da48 argv=0x40a5db90
spawn_execattrs: Setting policy=2 priority=100 for pid=3
pinephone-nuttx/render.zig: hello_main
backlight_enable: start, percent=90
Configure PL10 for PWM
*0x1f02c04: clear 0x700, set 0x200
*0x1f02c04 = 0x77277
Disable R_PWM
*0x1f03800: clear 0x40, set 0x0
*0x1f03800 = 0x0
Configure R_PWM Period
*0x1f03804 = 0x4af0437
Enable R_PWM
*0x1f03800 = 0x5f
Configure PH10 for Output
*0x1c20900: clear 0x700, set 0x100
*0x1c20900 = 0x7177
Set PH10 to High
*0x1c2090c: clear 0x400, set 0x400
*0x1c2090c = 0x400
backlight_enable: end
display_board_init: start
Configure PD23 for Output
*0x1c20874: clear 0x70000000, set 0x10000000
*0x1c20874 = 0x17711177
Set PD23 to Low
*0x1c2087c: clear 0x800000, set 0x0
*0x1c2087c = 0x0
Set DLDO1 Voltage to 3.3V
pmic_write: reg=0x15, val=0x1a
rsb_write: rt_addr=0x2d, reg_addr=0x15, value=0x1a
*0x1f0342c = 0x4e
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x15
*0x1f0341c = 0x1a
*0x1f03400 = 0x80
pmic_clrsetbits: reg=0x12, clr_mask=0x0, set_mask=0x8
rsb_read: rt_addr=0x2d, reg_addr=0x12
*0x1f0342c = 0x8b
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x12
*0x1f03400 = 0x80
rsb_write: rt_addr=0x2d, reg_addr=0x12, value=0xd9
*0x1f0342c = 0x4e
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x12
*0x1f0341c = 0xd9
*0x1f03400 = 0x80
Set LDO Voltage to 3.3V
pmic_write: reg=0x91, val=0x1a
rsb_write: rt_addr=0x2d, reg_addr=0x91, value=0x1a
*0x1f0342c = 0x4e
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x91
*0x1f0341c = 0x1a
*0x1f03400 = 0x80
Enable LDO mode on GPIO0
pmic_write: reg=0x90, val=0x3
rsb_write: rt_addr=0x2d, reg_addr=0x90, value=0x3
*0x1f0342c = 0x4e
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x90
*0x1f0341c = 0x3
*0x1f03400 = 0x80
Set DLDO2 Voltage to 1.8V
pmic_write: reg=0x16, val=0xb
rsb_write: rt_addr=0x2d, reg_addr=0x16, value=0xb
*0x1f0342c = 0x4e
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x16
*0x1f0341c = 0xb
*0x1f03400 = 0x80
pmic_clrsetbits: reg=0x12, clr_mask=0x0, set_mask=0x10
rsb_read: rt_addr=0x2d, reg_addr=0x12
*0x1f0342c = 0x8b
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x12
*0x1f03400 = 0x80
rsb_write: rt_addr=0x2d, reg_addr=0x12, value=0xd9
*0x1f0342c = 0x4e
*0x1f03430 = 0x2d0000
*0x1f03410 = 0x12
*0x1f0341c = 0xd9
*0x1f03400 = 0x80
Wait for power supply and power-on init
display_board_init: end
panel_reset: start
Configure PD23 for Output
*0x1c20874: clear 0x70000000, set 0x10000000
*0x1c20874 = 0x17711177
Set PD23 to High
*0x1c2087c: clear 0x800000, set 0x800000
*0x1c2087c = 0x800000
wait for initialization
panel_reset: end
de2_init: start
Set High Speed SRAM to DMA Mode
*0x1c00004 = 0x0
Set Display Engine PLL to 297 MHz
*0x1c20048 = 0x81001701
Wait for Display Engine PLL to be stable
Set Special Clock to Display Engine PLL
*0x1c20104: clear 0x87000000, set 0x81000000
*0x1c20104 = 0x81000000
Enable AHB for Display Engine: De-Assert Display Engine
*0x1c202c4: clear 0x1000, set 0x1000
*0x1c202c4 = 0x1008
Enable AHB for Display Engine: Pass Display Engine
*0x1c20064: clear 0x1000, set 0x1000
*0x1c20064 = 0x1008
Enable Clock for MIXER0: SCLK Clock Pass
*0x1000000: clear 0x1, set 0x1
*0x1000000 = 0x1
Enable Clock for MIXER0: HCLK Clock Reset Off
*0x1000008: clear 0x1, set 0x1
*0x1000008 = 0x1
Enable Clock for MIXER0: HCLK Clock Pass
*0x1000004: clear 0x1, set 0x1
*0x1000004 = 0x1
Route MIXER0 to TCON0
*0x1000010: clear 0x1, set 0x0
*0x1000010 = 0x0
Clear MIXER0 Registers: GLB, BLD, OVL_V, OVL_UI
*0x1100000 = 0x0
to *0x1105fff = 0x0
Disable MIXER0 VSU
*0x1120000 = 0x0
Disable MIXER0 Undocumented
*0x1130000 = 0x0
Disable MIXER0 UI_SCALER1
*0x1140000 = 0x0
Disable MIXER0 UI_SCALER2
*0x1150000 = 0x0
Disable MIXER0 FCE
*0x11a0000 = 0x0
Disable MIXER0 BWS
*0x11a2000 = 0x0
Disable MIXER0 LTI
*0x11a4000 = 0x0
Disable MIXER0 PEAKING
*0x11a6000 = 0x0
Disable MIXER0 ASE
*0x11a8000 = 0x0
Disable MIXER0 FCC
*0x11aa000 = 0x0
Disable MIXER0 DRC
*0x11b0000 = 0x0
Enable MIXER0
*0x1100000 = 0x1
de2_init: end
renderGraphics: start
initUiBlender: start
Set Blender Background
*0x1101088 = 0xff000000
Set Blender Pre-Multiply
*0x1101084 = 0x0
initUiBlender: end
initUiChannel: start
Channel 1: Set Overlay (720 x 1440)
*0x1103000 = 0xff000405
*0x1103010 = 0x4010a000
*0x110300c = 0xb40
*0x1103004 = 0x59f02cf
*0x1103088 = 0x59f02cf
*0x1103008 = 0x0
Channel 1: Set Blender Output
*0x110108c = 0x59f02cf
*0x110000c = 0x59f02cf
Channel 1: Set Blender Input Pipe 0 (720 x 1440)
*0x1101008 = 0x59f02cf
*0x1101004 = 0xff000000
*0x110100c = 0x0
*0x1101090 = 0x3010301
Channel 1: Disable Scaler
*0x1140000 = 0x0
initUiChannel: end
initUiChannel: start
Channel 2: Set Overlay (600 x 600)
*0x1104000 = 0xff000005
*0x1104010 = 0x404ff000
*0x110400c = 0x960
*0x1104004 = 0x2570257
*0x1104088 = 0x2570257
*0x1104008 = 0x0
Channel 2: Set Blender Input Pipe 1 (600 x 600)
*0x1101018 = 0x2570257
*0x1101014 = 0xff000000
*0x110101c = 0x340034
*0x1101094 = 0x3010301
Channel 2: Disable Scaler
*0x1150000 = 0x0
initUiChannel: end
initUiChannel: start
Channel 3: Set Overlay (720 x 1440)
*0x1105000 = 0x7f000005
*0x1105010 = 0x4065f000
*0x110500c = 0xb40
*0x1105004 = 0x59f02cf
*0x1105088 = 0x59f02cf
*0x1105008 = 0x0
Channel 3: Set Blender Input Pipe 2 (720 x 1440)
*0x1101028 = 0x59f02cf
*0x1101024 = 0xff000000
*0x110102c = 0x0
*0x1101098 = 0x3010301
Channel 3: Disable Scaler
*0x1160000 = 0x0
initUiChannel: end
applySettings: start
Set Blender Route
*0x1101080 = 0x321
Enable Blender Pipes
*0x1101000 = 0x701
Apply Settings
*0x1100008 = 0x1
applySettings: end
renderGraphics: end
nsh>
nsh>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment