SH7706ボードの後継版であるT-SAM9260ボードに対応したARM926EJ-S/AT91SAM9260のLinux-6.18 でのLAN通信とSDカードとUSBホストの動作を確認し、その差分を作成しました。

Linuxカーネルは2025年12月時点での最新バージョンであるLinux-6.18です。

カーネル差分は linux-6.18-sam9260-1.patchです。
Linuxカーネル本体のソースアーカイブは linux-6.18.tar.xzです。

Linuxカーネル本体のソースアーカイブを展開して、差分パッチファイルを配置したあとにフォルダ内に入り、パッチファイルを当ててから、設定を読込・保存してから、カーネル構築をします。

ARM926EJ-S/AT91SAM9260でのLInux6.18のブート画面とログイン後のネットワーク通信操作は以下のとおりです。

Booting Linux on physical CPU 0x0
Linux version 6.18.0 (general@B650) (arm-linux-gnueabi-gcc (Ubuntu 14.2.0-19ubu5
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
CPU: VIVT data cache, VIVT instruction cache
OF: fdt: Machine model: TAC T-SAM9260
Memory policy: Data cache writeback
Zone ranges:
Normal [mem 0x0000000020000000-0x00000000217fffff]
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000020000000-0x00000000217fffff]
Initmem setup node 0 [mem 0x0000000020000000-0x00000000217fffff]
OF: reserved mem: Reserved memory: No reserved-memory node in the DT
Kernel command line: console=ttyS0 noinitrd root=1f00 slram=mtd0,0x21800000,+0x0
printk: log buffer data + meta data: 16384 + 51200 = 67584 bytes
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
Built 1 zonelists, mobility grouping on. Total pages: 6144
mem auto-init: stack:all(zero), heap alloc:off, heap free:off
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
clocksource: pit: mask: 0x7ffffff max_cycles: 0x7ffffff, max_idle_ns: 910124015s
clocksource: timer@fffa0000: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_s
sched_clock: 32 bits at 13MHz, resolution 76ns, wraps every 163617802201ns
Switching to timer-based delay loop, resolution 76ns
Console: colour dummy device 80×30
Calibrating delay loop (skipped), value calculated using timer frequency.. 26.2)
CPU: Testing write buffer coherency: ok
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
Setting up static identity map for 0x20008400 – 0x2000847c
Memory: 15080K/24576K available (6085K kernel code, 204K rwdata, 1844K rodata, )
devtmpfs: initialized
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 149s
posixtimers hash table entries: 512 (order: 0, 2048 bytes, linear)
futex hash table entries: 256 (4096 bytes on 1 NUMA nodes, total 4 KiB, linear).
pinctrl core: initialized pinctrl subsystem
NET: Registered PF_NETLINK/PF_ROUTE protocol family
DMA: preallocated 256 KiB pool for atomic coherent allocations
AT91: PM: standby: standby, suspend: ulp0
No ATAGs?
gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic alloc.
gpio-at91 fffff400.gpio: at address (ptrval)
gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic alloc.
gpio-at91 fffff600.gpio: at address (ptrval)
gpio gpiochip2: Static allocation of GPIO base is deprecated, use dynamic alloc.
gpio-at91 fffff800.gpio: at address (ptrval)
pinctrl-at91 ahb:apb:pinctrl@fffff400: initialized AT91 pinctrl driver
AT91: Detected SoC: at91sam9260, revision 2
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 – Copyright 2005-2007 Rodolfo Giometti <giometti@>
PTP clock support registered
clocksource: Switched to clocksource timer@fffa0000
NET: Registered PF_INET protocol family
IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
NET: Registered PF_UNIX/PF_LOCAL protocol family
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp-with-tls transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Initialise system trusted keyrings
workingset: timestamp_bits=30 max_order=12 bucket_order=0
ntfs3: Enabled Linux POSIX ACLs support
ntfs3: Read-only LZX/Xpress compression included
NET: Registered PF_ALG protocol family
Key type asymmetric registered
Asymmetric key parser ‘x509’ registered
io scheduler mq-deadline registered
io scheduler kyber registered
brd: module loaded
loop: module loaded
atmel_usart_serial.0.auto: ttyS0 at MMIO 0xfffff200 (irq = 16, base_baud = 6562L
printk: legacy console [ttyS0] enabled
atmel_usart_serial.1.auto: ttyS1 at MMIO 0xfffb0000 (irq = 21, base_baud = 6562L
platform physmap-flash.0: failed to claim resource 0: [mem 0x08000000-0x07fffff]
macb fffc4000.ethernet eth0: Cadence MACB rev 0x0001010c at 0xfffc4000 irq 22 ()
at91_ohci 500000.usb: USB Host Controller
at91_ohci 500000.usb: new USB bus registered, assigned bus number 1
at91_ohci 500000.usb: irq 23, io mem 0x00500000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.18
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: USB Host Controller
usb usb1: Manufacturer: Linux 6.18.0 ohci_hcd
usb usb1: SerialNumber: 500000.usb
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver pl2303
usbserial: USB Serial support registered for pl2303
udc: at91_udc version 3 May 2006
rtc-at91sam9 fffffd20.rtc: registered as rtc0
rtc-at91sam9 fffffd20.rtc: setting system clock to 2025-12-12T11:43:09 UTC (176)
at91-reset fffffd00.reset-controller: Starting after software reset
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
iio iio:device0: Resolution used: 10 bits
slot@1 enforce active low on GPIO handle
atmel_mci fffa8000.mmc: version: 0x210
atmel_mci fffa8000.mmc: using PDC
atmel_mci fffa8000.mmc: Atmel MCI controller at 0xfffa8000 irq 26, 1 slots
NET: Registered PF_PACKET protocol family
Loading compiled-in X.509 certificates
usb 1-1: new full-speed USB device number 2 using at91_ohci
clk: Disabling unused clocks
check access for rdinit=/init failed: -2, ignoring
EXT4-fs (mtdblock0): mounted filesystem 267e07dd-0ed6-4f7e-b0c3-90ba0986433b ro.
VFS: Mounted root (ext4 filesystem) readonly on device 31:0.
devtmpfs: mounted
Freeing unused kernel image (initmem) memory: 268K
Kernel memory protection not selected by kernel config.
Run /sbin/init as init process
usb 1-1: New USB device found, idVendor=1307, idProduct=0165, bcdDevice= 1.00
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: series
usb 1-1: Manufacturer: MF-AU
usb 1-1: SerialNumber: 8ae01ef57904bf
usb-storage 1-1:1.0: USB Mass Storage device detected
scsi host0: usb-storage 1-1:1.0
EXT4-fs (mtdblock0): re-mounted 267e07dd-0ed6-4f7e-b0c3-90ba0986433b r/w.
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2048 inodes, 8192 blocks
409 blocks (5%) reserved for the super user
First data block=1
Maximum filesystem blocks=262144
1 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
scsi 0:0:0:0: Direct-Access MF-AU series 0.00 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 7897088 512-byte logical blocks: (4.04 GB/3.77 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Asking for cache data failed
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
mmc0: host does not support reading read-only switch, assuming write-enable
mmc0: new SDHC card at address e624
mmcblk0: mmc0:e624 SU08G 7.40 GiB
random: crng init done
mmcblk0: p1 p2
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2048 inodes, 8192 blocks
409 blocks (5%) reserved for the super user
First data block=1
Maximum filesystem blocks=262144
1 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
EXT4-fs (ram1): mounted filesystem 85cf46b3-1c0b-4da1-8bc3-87b825e7b82e r/w wit.
ext4 filesystem being mounted at /tmp supports timestamps until 2038-01-19 (0x7)
EXT4-fs (ram2): mounted filesystem 25ad067b-ba49-431d-998d-833efbe71833 r/w wit.
ext4 filesystem being mounted at /mnt supports timestamps until 2038-01-19 (0x7)
EXT4-fs (ram2): unmounting filesystem 25ad067b-ba49-431d-998d-833efbe71833.
EXT4-fs (ram2): mounted filesystem 25ad067b-ba49-431d-998d-833efbe71833 r/w wit.
ext4 filesystem being mounted at /dev supports timestamps until 2038-01-19 (0x7)

shlinux login: root
Password:

login[401]: root login on ‘ttyS0’


~ # udhcpc
udhcpc (v1.19.2) started
macb fffc4000.ethernet eth0: PHY [fffc4000.ethernet-ffffffff:01] driver [NS DP8)
macb fffc4000.ethernet eth0: configuring for phy/mii link mode
Sending discover…
macb fffc4000.ethernet eth0: Link is Up – 100Mbps/Full – flow control off
Sending discover…
Sending select for 192.168.0.5…
Lease of 192.168.0.5 obtained, lease time 86400
deleting routers
route: SIOCDELRT: No such process
adding dns 192.168.0.1
~ # ping 192.168.0.1
92.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: seq=0 ttl=255 time=4.932 ms
64 bytes from 192.168.0.1: seq=1 ttl=255 time=1.296 ms
64 bytes from 192.168.0.1: seq=2 ttl=255 time=1.349 ms
^C
— 192.168.0.1 ping statistics —
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.296/2.525/4.932 ms
~ #