📜 ⬆️ ⬇️

Microcomputer Module MB 77.07 - Russian Answer Raspberry Pi



Reading the news about the ban on the supply of electronic component base from the United States for individual manufacturers in the Russian Federation, we decided to talk about the Module MB 77.07 single-board microcomputer, which was developed at the Russian scientific and technical center “Module” based on one of the most productive Russian ARM architecture processors. We will also look at installing a Debian Linux distribution on this microcomputer.

MW 77.07 is built on the basis of a system based on a K1879HB1YA crystal, which is also developed by the SEC “Module”. Although the K1879HB1Y scheme is primarily intended for use as a video decoder in various set-top boxes, video surveillance devices and smart home systems, the MB 77.07 microcomputer itself is positioned as an enthusiastic system with this processor programmers and student board. Thus, we can say that this is the Russian equivalent of the Raspberry Pi. Let's briefly review the main characteristics of the K1879HB1Y processor, and then the board itself.

The system on a K1879HB1YA chip is built on the basis of two processor cores - ARM11 (ARM1176JZF-S) and an additional DSP processor of the original NeuroMatrix architecture, which is included in the audio decoding unit.
')


The operating frequency of the ARM processor is 324 MHz (and DSP is also), not the largest by modern standards, however, we were able to see from our own experience that it allows you to comfortably run Linux and use the processor’s sufficiently rich peripherals: hardware H.264 video decoders, MPEG-2, VC-1; 2D video accelerator; 8-channel DSP-based audio processor; TS flow demultiplexing unit; crypto processor with support for AES and 3DES algorithms.

K1879HB1YA is equipped with the following interfaces:



Functional diagram of SoC K1879HB1Y

Let's proceed to the description of the MB 77.07 itself: its size is 80x80 mm, in addition to the processor itself, the board has 128 MB of system memory and 128 MB of video memory (both are DDR2-667 SDRAM) and 1 GB of NAND memory. The board has the following interface connectors:

In addition, the following interfaces are displayed on the “comb”:

Board power - 5 V, estimated cost - within 30 dollars.



Currently, the U-Boot bootloader and the Linux 2.6.33 kernel are ported for the card, drivers for all peripheral devices have been developed, and the process of porting drivers for Linux 3.10 is also being completed. A number of elements of the gstreamer conveyor with the support of various peripheral devices (in particular, video decoder and video controller) has been developed. For the development of a DSP processor, there is the NeuroMatrix SDK. Source codes for U-Boot, Linux, as well as the Buildroot build system can be obtained from the SEC “Module” upon request.

1. Deploy the base Debian system


To deploy the Debian root filesystem, we use the debootstrap utility, which is “recognized as the official way to install the base Debian system” (see the debian.org manual and wiki.debian.org).

Deploying the target file system using debootstrap takes place in two stages: the first is performed in the environment of the host system (at this stage, the necessary packages are downloaded and unpacked, but not installed); The second stage is performed on the target system (configuration and installation of packages takes place here).

We will install Debian 7.0 Wheezy for the armel architecture, the system will be deployed in the debrootfs directory.

The first stage of debootstrap is performed by the command

sudo debootstrap --verbose --foreign --arch=armel wheezy debrootfs ftp://ftp.ru.debian.org/debian

QEMU syscall,

sudo apt-get install qemu qemu-user-static

qemu-arm-static - :

sudo cp /usr/bin/qemu-arm-static debrootfs/usr/bin

debootstrap:

sudo chroot debrootfs /debootstrap/debootstrap --second-stage

debrootfs/debootstrap, .

2. Debian


root-a :

sudo chroot debrootfs /usr/bin/passwd root

sudo mount -t proc none debrootfs/proc 
sudo mount -t sysfs none debrootfs/sys 
sudo mount -t devpts none debrootfs/dev/pts 

chroot- :

sudo chroot debrootfs

etc/apt/sources.list ( ):

deb http://ftp.ru.debian.org/debian/ wheezy main contrib non-free 
deb http://http.ru.debian.org/debian wheezy main contrib non-free 



apt-get update 

, ssh- :

apt-get install openssh-server openssh-client



exit

, :

sudo umount rootfs-dir/proc 
sudo umount rootfs-dir/sys 
sudo umount rootfs-dir/dev/pts 

, rootfs, debrootfs/lib/modules.
COM-, debrootfs/etc/inittab:

#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

, , 38400:

T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100

, , UBI- rootfs NAND- NFS.

. NFS

MBOOT (UEMD mode): Version mboot-00045-gd0c2f07-dirty (Built 11 08:41:46 FET 2013)
OTP info: boot_source 2 jtag_stop 0 words_len 1024
Maximum bank size: 0x10000000 bytes
Detected 134217728 bytes of EM0 memory
MEMORY: 40000000 -> 48000000
Memory layout
        0x00100010  early
        0x001001B8  text
        0x001176C8  data
        0x0011F028  signature
        0x0011F02C  bss_start
        0x00121D84  stack_start
        0x00137BF8^ stack_ptr
        0x00137C00  malloc
        0x0013FC00  env
mnand_read_id: flash id 0xDC
mnand_read_id: flash ext_id 0x95
mnand_read_id: CS0 NAND 512MiB 3,3V 8-bit size(512) writesize(2048) oobsize(64) erasesize(131072)
mnand_read_id: flash id 0xDC
mnand_read_id: flash ext_id 0x95
mnand_read_id: CS1 NAND 512MiB 3,3V 8-bit size(512) writesize(2048) oobsize(64) erasesize(131072)
greth: Setting GRETH base addr to 0x20034000
greth: Found GRETH at 0x20034000, irq 255
greth: Resetting GRETH
greth: greth: 'phyaddr' not set, fall back to built-in table
greth: greth: using preset PHY addr: 1f
greth: Resetting the PHY
greth: write_mii: 0x20034010 < 0xF809F801 [p:31 a:0 d:0xF809]
greth: write_mii: 0x20034010 < 0x0000F801 [p:31 a:0 d:0x0000]
greth: 10/100 GRETH Ethermac at [0x20034000] irq 255. Running 10 Mbps half duplex
PHY info not available
greth: greth_init
greth: greth_init: enabling receiver
ETH new device: name GRETH_10/100 
greth: GRETH: New MAC address: 00:02:f7:00:27:0f
Is there an EDCL emergency? Nope
MTD Partition:       boot @ 0x00000000 size 0x00040000
MTD Partition:        env @ 0x00040000 size 0x00040000
MTD Partition: kernel_dtb @ 0x00080000 size 0x00080000
MTD Partition:     kernel @ 0x00100000 size 0x00400000
MTD Partition:     rootfs @ 0x00500000 size 0x3FB00000
Hit any key (in 2 sec) to skip autoload...
Running autoload command 'mtdboot;bootm'
MTD Loading kernel image: dev kernel offset 0x000000000000 addr 0x40100000
Linux preparing to boot the kernel: machid 0xcd1
IMG moving image: type 2 from 0x40100040 to 0x40008000
HINT: To optimize boot time adjust loadaddr to: 0x40007fc0
Linux DTB start 0x40000100
Linux entry 0x40008000
Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.10.18-uemd (sergei@shost) (gcc version 4.7.2 (crosstool-NG 1.18.0) ) #11 Tue Mar 4 13:48:01 FET 2014
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: Module MB77.07, model: Module MB77.07
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 23840
[    0.000000] Kernel command line: console=ttyS0,38400 earlyprintk=serial root=/dev/nfs rw nfsroot=192.168.10.130:/srv/nfs/ ip=dhcp
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 94MB 0MB = 94MB total
[    0.000000] Memory: 89564k/89564k available, 41508k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc045c930   (4435 kB)
[    0.000000]       .init : 0xc045d000 - 0xc047d790   ( 130 kB)
[    0.000000]       .data : 0xc047e000 - 0xc04be178   ( 257 kB)
[    0.000000]        .bss : 0xc04be178 - 0xc053df90   ( 512 kB)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:128
[    0.000000] regs = 0xf8000000, irq_start = 0
[    0.000000] VIC @f8000000: id 0x00041192, vendor 0x41
[    0.000000] regs = 0xf8010000, irq_start = 32
[    0.000000] VIC @f8010000: id 0x00041192, vendor 0x41
[    0.000000] UEMD: Firing up timer system
[    0.000000] Clocksource: rate 54000000 mult 19418074 shift 20
[    0.000000] Clockevent: rate 54000000 mult 231928233 shift 32
[    0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
[    0.000000] Console: colour dummy device 80x30
[    0.020000] Calibrating delay loop... 215.04 BogoMIPS (lpj=1075200)
[    0.100000] pid_max: default: 32768 minimum: 301
[    0.110000] Mount-cache hash table entries: 512
[    0.130000] CPU: Testing write buffer coherency: ok
[    0.150000] Setting up static identity map for 0xc030aa10 - 0xc030aa48
[    0.160000] devtmpfs: initialized
[    0.180000] NET: Registered protocol family 16
[    0.200000] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.260000] OTP ROM is not flashed
[    0.270000] msvdhd: configuring memory
[    0.280000] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.290000] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.420000] bio: create slab <bio-0> at 0
[    0.440000] SCSI subsystem initialized
[    0.450000] ssp-pl022 20023000.ssp: ARM PL022 driver, device ID: 0x00041022
[    0.460000] pl022: mapped registers from 0x20023000 to f8023000
[    0.480000] usbcore: registered new interface driver usbfs
[    0.490000] usbcore: registered new interface driver hub
[    0.500000] usbcore: registered new device driver usb
[    0.510000] media: Linux media interface: v0.10
[    0.520000] Linux video capture interface: v2.00
[    0.530000] Advanced Linux Sound Architecture Driver Initialized.
[    0.550000] Switching to clocksource uemd_timer1
[    0.650000] NET: Registered protocol family 2
[    0.660000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[    0.670000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.680000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.690000] TCP: reno registered
[    0.700000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.710000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.720000] NET: Registered protocol family 1
[    0.730000] RPC: Registered named UNIX socket transport module.
[    0.740000] RPC: Registered udp transport module.
[    0.750000] RPC: Registered tcp transport module.
[    0.760000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.830000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.850000] msgmni has been set to 174
[    0.870000] alg: No test for stdrng (krng)
[    0.880000] io scheduler noop registered (default)
[    0.900000] module,pinmux 20033084.sysconfigh: DVB_CI mode is GPIO (0)
[    0.910000] module,pinmux 20033084.sysconfigh: TS1 mode is GPIO (0)
[    0.920000] module,pinmux 20033084.sysconfigh: TS2 mode is GPIO (0)
[    0.930000] module,pinmux 20033084.sysconfigh: NAND mode is peripheral (1)
[    0.940000] module_vdu 80173000.vdu: found VDU device at 80173000, id <ebebab01>
[    0.970000] Console: switching to colour frame buffer device 90x36
[    0.990000] fb0: Module VDU frame buffer device
[    1.040000] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    1.050000] 2002b000.uart: ttyS0 at MMIO 0x2002b000 (irq = 7) is a 8250
[    1.060000] console [ttyS0] enabled, bootconsole disabled
[    1.060000] console [ttyS0] enabled, bootconsole disabled
[    1.070000] 20022000.uart: ttyS1 at MMIO 0x20022000 (irq = 9) is a 8250
[    1.080000] 2002c000.uart: ttyS2 at MMIO 0x2002c000 (irq = 8) is a 8250
[    1.120000] loop: module loaded
[    1.130000] msvdhd 80180000.video_decoder: found device at 0x80180000, id 0x0025300b
[    1.180000] NMC3_DRIVER probe OK
[    1.200000] dev_ex->Name=NMC3_0
[    1.220000] drivers/misc/rcmod_soc_nmc3.c#105: sync value ERROR code=0x4, memval=0x4
[    1.240000] nmcadec: could not initialize NMC3_0
[    1.260000] mnand CS0 Micron size(512) writesize(2048) oobsize(64) erasesize(131072)
[    1.270000] mnand CS1 Micron size(512) writesize(2048) oobsize(64) erasesize(131072)
[    1.280000] mnand: Detected 1073741824 bytes of NAND
[    1.300000] libphy: greth-mdio: probed
[    4.340000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.350000] uemd-ehci 10040000.ehci: UEMD EHCI
[    4.360000] uemd-ehci 10040000.ehci: new USB bus registered, assigned bus number 1
[    4.370000] uemd-ehci 10040000.ehci: irq 35, io mem 0x10040000
[    4.400000] uemd-ehci 10040000.ehci: USB 2.0 started, EHCI 1.00
[    4.420000] hub 1-0:1.0: USB hub found
[    4.430000] hub 1-0:1.0: 2 ports detected
[    4.440000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    4.450000] usbcore: registered new interface driver usb-storage
[    4.460000] mousedev: PS/2 mouse device common for all mice
[    4.470000] i2c /dev entries driver
[    4.490000] module_hdmi: module_hdmi: Device ID: 0x9132
[    4.530000] usbcore: registered new interface driver usbhid
[    4.540000] usbhid: USB HID core driver
[    4.570000] TCP: cubic registered
[    4.580000] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[    4.610000] mvdu: will allocate buffers
[    4.620000] mvdu: did allocate buffers cc000000
[    4.660000] Sending DHCP requests ., OK
[    4.690000] IP-Config: Got DHCP answer from 192.168.10.41, my address is 192.168.10.117
[    4.710000] IP-Config: Complete:
[    4.720000]      device=eth0, hwaddr=00:02:f7:00:27:0f, ipaddr=192.168.10.117, mask=255.255.255.0, gw=192.168.10.1
[    4.730000]      host=192.168.10.117, domain=promwad.corp, nis-domain=(none)
[    4.740000]      bootserver=192.168.10.45, rootserver=192.168.10.130, rootpath=
[    4.750000]      nameserver0=192.168.10.41, nameserver1=192.168.10.42
[    4.760000] ALSA device list:
[    4.770000]   #0: Module MB7707
[    4.800000] VFS: Mounted root (nfs filesystem) on device 0:11.
[    4.810000] devtmpfs: mounted
[    4.830000] Freeing unused kernel memory: 128K (c045d000 - c047d000)
[    4.850000] usb 1-1: new high-speed USB device number 2 using uemd-ehci
[    5.020000] hub 1-1:1.0: USB hub found
[    5.040000] hub 1-1:1.0: 4 ports detected
INIT: version 2.88 booting
[info] Using makefile-style concurrent boot in runlevel S.
[....] Starting the hotplug events dispatcher: udevd[   39.850000] udevd[730]: starting version 175
. ok 
[....] Synthesizing the initial hotplug events...done.
[....] Waiting for /dev to be fully populated...done.
[....] Activating swap...done.
[....] Cleaning up temporary files.... ok 
[....] Activating lvm and md swap...done.
[....] Checking file systems...fsck from util-linux 2.20.1
done.
[....] Mounting local filesystems...done.
[....] Activating swapfile swap...done.
[....] Cleaning up temporary files.... ok 
[....] Setting kernel variables ...done.
[....] Configuring network interfaces...done.
[....] Cleaning up temporary files.... ok 
[....] Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix. ok 
INIT: Entering runlevel: 2
[info] Using makefile-style concurrent boot in runlevel 2.
[....] Starting enhanced syslogd: rsyslogd. ok 
[....] Starting periodic command scheduler: cron. ok 
[....] Starting system message bus: dbus. ok 
[....] Starting OpenBSD Secure Shell server: sshd. ok 

Debian GNU/Linux 7 shost ttyS0

shost login: root
Password: 
Last login: Thu Jan  1 00:01:26 UTC 1970 on ttyS0
Linux shost 3.10.18-uemd #11 Tue Mar 4 13:48:01 FET 2014 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@shost:~# cat /etc/issue
Debian GNU/Linux 7 \n \l
root@shost:~# 



. .

P.S. — AM1808 TI .

Source: https://habr.com/ru/post/217893/


All Articles