date: Wed 29 Jan 2025 04:07:56 PM PST
subj: next thing NTC chip C.H.I.P resurrection
auth: bbsing at s d f . o r g
--------------------------------------------------
Background:
-----------------------------
I have a Next Thing Co (NTC) C.H.I.P computer.
This little SBC computer was about $9 when NTC was selling them.
Not long after I got this little computer NTC started having
huge problems, and eventually they vanished as a company.
History of NTC link:
--------------------
https://en.wikipedia.org/wiki/CHIP_(computer)
Their single board computers (SBC) were really cool devices and
they had some features I wish the leader in this space
(raspbberypi) had and NTC's price point ($9) was really awesome.
The problem is NTC went bankrupt, and eventually they shut down
the file repository crippling the community and support for
their computers. Right about that time I attempted to update my
little CHIP computer not knowing NTC had decided to vanish.
After the update attempt the little CHIP no longer would boot.
Something to do with a slight difference on my version of the
board or some sort of corruption during the update/shutdown
process caused it to never boot up again.
My problem is I'm not that good at computing, and I'm really bad
at linux U-Boot.
Troubleshooting:
-----------------------------
Using my raspberrypi remotely with a Waveshare USB
--------------------------------------------------
Connect to UART via device Waveshare USB UART0,
pins on chip =
-------------
chip U14_urt1-tx -> ws_rx
ch_urt1-rx -> ws_tx
ch_U13_gnd -> ws_gnd
-----------------------------------------------------
U13 U14
___________ ___________
gnd | [g] [ ] |\_____________urt1-tx_| [r] [ ] |\
| [ ] [ ] | |............urt1-rx_| [t] [ ] | |
| [ ] [ ] | |................fel_| [ ] [ ] | |
| [ ] [ ] | |....................| [ ] [ ] | |
| [ ] [ ] | |....................| [ ] [ ] | |
| [ ] [ ] | |....................| [ ] [ ] | |
| [ ] [ ] | |....................| [ ] [ ] | |
^^^^^^^^^^^ Diagram of chip GPIO ports ^^^^
-----------------------------------------------------
I had to connect to the CHIP this way in order to see what is
happening when the system attempts to boot up. Luckily I have
access to the device and I can reset the device via U-boot
command "reset". This gives me some place to start.
----------------------------------------------
Launch minicom via:
------------------
sudo minicom -D /dev/ttyACM0 -b115200
----------------------------------------------
Output of the boot process:
----------------------------------------------
************************************************************************
* *
* reset *
* resetting ... *
* *
* U-Boot SPL 2016.01-00089-gccd1de0 (Jan 13 2017 - 00:45:55) *
* DRAM: 512 MiB *
* CPU: 1008000000Hz, AXI/AHB/APB: 3/2/2 *
* Trying to boot from NAND *
* *
* *
* U-Boot 2016.01-00089-gccd1de0 (Jan 13 2017 - 00:45:55 +0000) *
* Allwinner Technology *
* *
* CPU: Allwinner A13 (SUN5I) *
* I2C: ready *
* DRAM: 512 MiB *
* NAND: 4096 MiB *
* video-mode 720x480-24@60 not available, falling back to *
* 1024x768-24@60 *
* *
* Setting up a 720x480i composite-ntsc console (overscan 40x20) *
* In: serial *
* Out: serial *
* Err: serial *
* Net: usb_ether *
* starting USB... *
* No controllers found *
* Hit any key to stop autoboot: 2 1 0 *
* ## Error: "test_fastboot" not defined *
* *
* device nand0 <sunxi-nand.0>, # parts = 5 *
* #: name size offset mask_flags *
* 0: spl 0x00400000 0x00000000 0 *
* 1: spl-backup 0x00400000 0x00400000 0 *
* 2: uboot 0x00400000 0x00800000 0 *
* 3: env 0x00400000 0x00c00000 0 *
* 4: UBI 0xff000000 0x01000000 0 *
* *
* active partition: nand0,0 - (spl) 0x00400000 @ 0x00000000 *
* *
* defaults: *
* mtdids : none *
* mtdparts: none *
* ubi0: attaching mtd1 *
* ubi0: scanning is finished *
* ubi0: attached mtd1 (name "mtd=4", size 4080 MiB) *
* ubi0: PEB size: 4194304 bytes (4096 KiB), LEB size: 2064384 *
* bytes *
* ubi0: min./max. I/O unit sizes: 16384/16384, sub-page size 16384 *
* ubi0: VID header offset: 16384 (aligned 16384), data offset: *
* 32768 *
* ubi0: good PEBs: 1008, bad PEBs: 12, corrupted PEBs: 0 *
* ubi0: user volume: 0, internal volumes: 1, max. volumes count: *
* 128 *
* ubi0: max/mean erase counter: 1/1, WL threshold: 4096, image *
* sequence number: 0 *
* ubi0: available PEBs: 993, total reserved PEBs: 15, PEBs *
* reserved for bad PEB handling: 8 *
* ubi0: LEBs per PEB: 2 *
* Error reading superblock on volume 'ubi0:rootfs' errno=-19! *
* ubifsmount - mount UBIFS volume *
* *
* Usage: *
* ubifsmount <volume-name> *
* - mount 'volume-name' volume *
* UBIFS not mounted, use ubifs mount to mount volume first! *
* ubifsload - load file from an UBIFS filesystem *
* *
* Usage: *
* ubifsload <addr> <filename> [bytes] *
* - load file 'filename' to address 'addr' *
* UBIFS not mounted, use ubifs mount to mount volume first! *
* ubifsload - load file from an UBIFS filesystem *
* *
* Usage: *
* ubifsload <addr> <filename> [bytes] *
* - load file 'filename' to address 'addr' *
* UBIFS not mounted, use ubifs mount to mount volume first! *
* ubifsload - load file from an UBIFS filesystem *
* *
* Usage: *
* ubifsload <addr> <filename> [bytes] *
* - load file 'filename' to address 'addr' *
* Bad Linux ARM zImage magic! *
* *
* device nand0 <sunxi-nand.0>, # parts = 5 *
* #: name size offset mask_flags *
* 0: spl 0x00400000 0x00000000 0 *
* 1: spl-backup 0x00400000 0x00400000 0 *
* 2: uboot 0x00400000 0x00800000 0 *
* 3: env 0x00400000 0x00c00000 0 *
* 4: UBI 0xff000000 0x01000000 0 *
* *
* active partition: nand0,0 - (spl) 0x00400000 @ 0x00000000 *
* *
* defaults: *
* mtdids : none *
* mtdparts: none *
* ubi0: detaching mtd1 *
* ubi0: mtd1 is detached *
* ubi0: attaching mtd1 *
* ubi0: scanning is finished *
* ubi0: attached mtd1 (name "mtd=4", size 4080 MiB) *
* ubi0: PEB size: 4194304 bytes (4096 KiB), LEB size: 2064384 *
* bytes *
* ubi0: min./max. I/O unit sizes: 16384/16384, sub-page size 16384 *
* ubi0: VID header offset: 16384 (aligned 16384), data offset: *
* 32768 *
* ubi0: good PEBs: 1008, bad PEBs: 12, corrupted PEBs: 0 *
* ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128 *
* ubi0: max/mean erase counter: 1/1, WL threshold: 4096, image *
* sequence number: 0 *
* ubi0: available PEBs: 993, total reserved PEBs: 15, PEBs *
* reserved for bad PEB handling: 8 *
* ubi0: LEBs per PEB: 2 *
* Error reading superblock on volume 'ubi0:rootfs' errno=-19! *
* ubifsmount - mount UBIFS volume *
* *
* Usage: *
* ubifsmount <volume-name> *
* - mount 'volume-name' volume *
* UBIFS not mounted, use ubifs mount to mount volume first! *
* ubifsload - load file from an UBIFS filesystem *
* *
* Usage: *
* ubifsload <addr> <filename> [bytes] *
* - load file 'filename' to address 'addr' *
* UBIFS not mounted, use ubifs mount to mount volume first! *
* ubifsload - load file from an UBIFS filesystem *
* *
* Usage: *
* ubifsload <addr> <filename> [bytes] *
* - load file 'filename' to address 'addr' *
* Bad Linux ARM zImage magic! *
* => *
* *
************************************************************************
----------------------------------------------
Where to go from here:
---------------------
* Collect information how to proceed.
* Find out how to use U-boot.
* Find out how the boot process works with linux and U-boot.
* Find a working image of any size to upload to the device.
* Attempt to find out if the hardware is still working.
* Attempt to find out of the mmcblock devices not broken.
* Attempt to get the system to boot up to linux.
----------------------------------------------
Problems:
----------------------------------------------
* I know nothing about U-boot embedded systems.
* U-boot version is old (year 2016)
* NTC doesn't exist anymore.
* Support for the computer doesn't exist anymore.
* Software or images don't exist, or are very difficult to find.
----------------------------------------------