ipad1g
https://gitlab.com/scintill/pmaports/tree/device/ipad1
https://github.com/scintill/linux/tree/ipad1
Current state
- Boots to userland with UART output (input may be broken) and framebuffer console.
- Todo
- See https://github.com/scintill/iDroid-kernel for older implementations.
- Implement USB (See https://github.com/scintill/iDroid-kernel/commit/2b1c269f5363911903b5cf7484d6ece0a7c51712).
- Touchscreen, wifi?
- Refine booting? There are some hacks in openiboot, to load the kernel below 128MB and give it a fixed framebuffer address. It might be nice to move the dts file into openiboot, and patch it at runtime with the dynamic framebuffer address. Eventually move to u-boot? There are some repositories with A4 support.
- Resolve UART flakiness? I'd rather use USB, if the implementation goes easily.
Booting
- Install syringe package in chroot
- Enter DFU mode (hold power and home with USB connected to computer)
loadibec openiboot-ipad1g.bin
- Script for automating oibc for booting (I've been running it on host, but there's a package) *
#!/usr/bin/expect
spawn oibc
send "!/path/to/vmlinuz\r"
sleep 0.1
send "\r"
expect "Received file"
send "kernel \"console=tty0 PMOS_NO_OUTPUT_REDIRECT\"\r"
expect "Done: kernel"
send "!/path/to/initramfs\r"
sleep 0.1
send "\r"
expect "Received file"
send "initrd\r"
expect "Done: initrd"
send "wait_boot 15000\r"
expect "Done: boot"
- Set
console=ttySAC0
for UART console instead of framebuffer -
earlycon=s3c2410,0x82500000
andkeep_bootcon
may be useful too.
Technical notes
Devicetree is used for most configuration. simple-framebuffer is configured to use the framebuffer set up by openiboot.