Wiznet makers

irina

Published June 15, 2026 ©

170 UCC

5 WCC

104 VAR

0 Contests

0 Followers

0 Following

Original Link

atarix

Capability-based, trust-nothing OS architecture on a W65C816S CPU card + ECP5 FPGA fabric. W5500 handles netboot/NTP during Rev A bring-up.

COMPONENTS
PROJECT DESCRIPTION

PROJECT DESCRIPTION

프로젝트가 하는 일

이 프로젝트(ATARIX, 제작자 @dlworrell)는 교체 가능한 CPU 카드, FPGA로 구현한 Fabric Northbridge, supervisor 관리 평면, 능력(capability) 기반 자원 접근, 명시적 보안 도큐트린, Sun/NuBus/UPA에서 영감을 받은 모듈형 백플레인을 중심으로 설계한 모듈형 실험 워크스테이션이자 운영체제 아키텍처 연구 프로젝트입니다.

초기 Rev A의 CPU 카드 타깃은 WDC W65C816S이지만, README는 이 프로세서를 "영구적인 아키텍처 제약이 아니라 구현 타깃"으로 규정합니다. 즉 공개 시스템 아키텍처를 바꾸지 않고도 향후 다른 CPU 카드를 추가할 수 있도록 설계되었습니다.

핵심은 trust-nothing(아무것도 신뢰하지 않는) 아키텍처입니다. 권한(authority)·신뢰·소유·영속성·정리(cleanup)가 모두 명시적이어야 하고, "연결성은 신뢰가 아니다", "코드 실행이 곧 권한은 아니다", "침해는 발생한다고 가정하고 반드시 격리(containment)한다" 같은 원칙을 따릅니다. 프로젝트는 코드가 아니라 아키텍처 자체를 산출물로 보고, 모든 하위 시스템은 구현 전에 아키텍처 리뷰를 거칩니다.

주요 목표는 운영체제 연구, FPGA 기반 시스템 아키텍처, 보안 디바이스 중재(mediation), 하드웨어 bring-up, 이기종 컴퓨팅 실험, 그리고 레트로-모던 워크스테이션 설계를 지원하는 것입니다

WIZnet이 들어가는 위치

이 프로젝트에서 사용되는(예정된) WIZnet 제품은 W5500입니다.

W5500은 ATARIX의 보안 코어나 Fabric Northbridge의 핵심 부품이 아닙니다. README의 Rev A 베이스라인에 따르면, W5500은 하드웨어 bring-up 단계에서 netboot(네트워크 부팅)와 NTP(시간 동기화) 를 지원하기 위한 초기 네트워킹 수단으로 사용될 가능성이 높습니다.

역할을 나누면 구조가 명확해집니다.

  • WDC W65C816S (CPU 카드): 커널 실행, 인터럽트 처리 등 결정론적 실행
  • ECP5 FPGA (Fabric Northbridge): 서비스 디스커버리, 메일박스 전송, DMA, 인터럽트 라우팅, 메모리 서비스 등 시스템 통합 지점
  • RP2350 (Supervisor): 리셋, 복구, RTC, 워치독, 헬스 모니터링, 결함 로깅
  • W5500 (네트워킹): bring-up 단계의 netboot 및 NTP — 시스템을 네트워크에서 끌어올리고 시간을 맞추는 초기 연결

bring-up 단계에서 안정적인 유선 Ethernet은 중요한데, W5500은 하드웨어 TCP/IP 스택, SPI 인터페이스, 8개 독립 socket, 32KB 내부 buffer를 제공하므로 호스트(또는 supervisor)가 복잡한 네트워크 프로토콜 처리를 떠안지 않고도 netboot/NTP를 구현하기 좋습니다. ATARIX의 trust-nothing 도큐트린 관점에서도, 네트워크 연결을 명시적이고 격리 가능한 객체로 다루는 설계와 잘 어울립니다("연결성은 신뢰가 아니다").

구현 메모

ATARIX는 대부분 C로 작성되며, 공개 C 인터페이스는 include/atarix/ 아래에 정리되어 있습니다. 주요 서브시스템은 다음과 같습니다.

  • Discovery (discovery.h): 디스커버리 와이어 포맷, magic/version 상수, 레코드 정렬/타입/플래그, CRC 커버리지
  • Operations (operations.h): READ, WRITE, CONTROL, RESET, BOOT, RECOVER, DELEGATE, REVOKE 같은 표준 연산 식별자
  • Rings (rings.h): 권한 링(coarse-grained 보안 경계)과 와이어 포맷 매핑
  • Capability: 범위 지정·취소·감사 가능하고 의도된 권한에 바인딩되는 능력 모델
  • Mailbox: 객체 간 통신 전송 계층(전송 자체가 권한을 부여하지 않음)

네트워킹 관점에서 W5500은 보통 SPI로 호스트 MCU에 연결됩니다. 아래는 ATARIX 저장소의 코드가 아니라, W5500 netboot를 구상할 때 참고할 수 있는 일반적인 흐름 예시입니다.

 

[전원/리셋]
  -> Supervisor(RP2350) 초기화
  -> W5500 SPI 초기화 (CLK/MOSI/MISO/CS/RESET/INT)
  -> 링크 업 확인 -> DHCP 또는 정적 IP
  -> NTP로 시간 동기화
  -> netboot: 네트워크에서 부팅 이미지 수신
  -> Fabric Northbridge로 제어 이양

참고: W5500은 SPI 기반이라 CLK / MOSI / MISO / CS / RESET / INT 핀을 보드 사양과 펌웨어에서 동일하게 맞춰야 합니다. SPI 핀을 다른 장치와 공유하지 않는 것이 안정적입니다.

실전 팁 / 주의점

  • 이 프로젝트는 아키텍처/연구 중심입니다. 완성된 워크스테이션 제품이 아니라, 사양(ATX-SPEC) 문서와 능력/링/메일박스 모델을 단계적으로 구현하는 단계입니다.
  • W5500은 현재 bring-up 단계의 netboot/NTP 용도로 계획된 것이며, 보안 코어가 아닙니다. 역할을 혼동하지 마세요.
  • bring-up에서는 네트워크 경로를 단순하게 유지하는 것이 디버깅에 유리합니다. 링크 업 → IP 획득 → NTP → netboot 순서를 단계별로 검증하세요.
  • W65C816S는 구현 타깃일 뿐 아키텍처 제약이 아닙니다. 향후 CPU 카드 교체를 전제로 공개 인터페이스에 CPU 종속 세부사항을 흘리지 않는 것이 도큐트린입니다.
  • 새 작업은 구현 전에 "권한을 만드는가/이양하는가/영속화하는가/노출하는가, 공격 표면을 늘리는가" 같은 질문(ARC-SEC)에 답해야 합니다.

유사 프로젝트

https://maker.wiznet.io/ssekim/projects/apache-nuttx-real-time-operating-system/

두 프로젝트는 모두 운영체제/시스템 소프트웨어 계층의 프로젝트이며, W5500을 네트워크 연결 수단으로 사용한다는 점에서 유사합니다. 다만 ATARIX는 새로운 능력 기반 보안 아키텍처를 바닥부터 설계하는 연구 프로젝트이고, NuttX는 표준 준수와 작은 풋프린트를 강조하는 성숙한 RTOS입니다.

유사점

항목유사한 점
계층둘 다 OS/시스템 소프트웨어 레벨의 프로젝트입니다.
오픈소스둘 다 오픈소스로 공개되어 있습니다.
네트워킹둘 다 W5500으로 Ethernet 연결을 제공/활용합니다.
임베디드 타깃둘 다 소형 임베디드/보드 환경을 대상으로 합니다.
저수준 제어둘 다 하드웨어에 가까운 저수준 제어를 다룹니다.

차이점

항목ATARIXApache NuttX RTOS
성격신규 아키텍처 연구 프로젝트성숙한 범용 RTOS
핵심 가치능력 기반 보안 + trust-nothing 도큐트린POSIX 호환성 + 작은 풋프린트
CPU 방향교체 가능한 CPU 카드(초기 W65C816S)다양한 MCU/SoC 포팅
통합 허브ECP5 FPGA Fabric Northbridge표준 커널 + 디바이스 드라이버
W5500 역할bring-up netboot/NTP 네트워킹일반 네트워크 스택 연결
산출물 관점아키텍처가 곧 산출물동작하는 RTOS 커널

FAQ

Q: ATARIX는 어떤 프로젝트인가요? A: 교체 가능한 CPU 카드와 ECP5 FPGA Fabric Northbridge, 능력 기반 보안을 중심으로 한 모듈형 실험 워크스테이션 / OS 아키텍처 연구 프로젝트입니다.

Q: 이 프로젝트에서 W5500은 어떤 역할인가요? A: Rev A 베이스라인 기준으로 hardware bring-up 단계의 netboot와 NTP를 위한 네트워킹 수단으로 사용될 가능성이 높습니다. 보안 코어 부품은 아닙니다.

Q: 왜 W65C816S 같은 오래된 CPU를 쓰나요? A: W65C816S는 Rev A의 구현 타깃일 뿐이며, 아키텍처는 CPU 카드를 교체할 수 있도록 설계되어 향후 다른 프로세서로 확장 가능합니다.

Q: 지금 어느 단계인가요? A: Discovery/Capability/Ring/Mailbox/Simulation 테스트가 통과한 상태(CI 40/40)이며, 현재 "Architecture Phase 2: Core System Semantics" 단계입니다.


What the Project Does

This project (ATARIX, created by @dlworrell) is a modular experimental workstation and operating-system research architecture built around interchangeable CPU cards, a Fabric Northbridge implemented in an FPGA, a supervisor management plane, capability-mediated resource access, an explicit security doctrine, and a Sun/NuBus/UPA-inspired modular backplane.

The initial Rev A CPU-card target is the WDC W65C816S, but the README treats this processor as "an implementation target, not a permanent architectural constraint." In other words, future CPU cards can be introduced without changing the public system architecture.

At its core is a trust-nothing architecture. Authority, trust, ownership, persistence, and cleanup must all be explicit, following principles such as "connectivity is not trust," "code execution does not imply authority," and "compromise is expected and must be contained." The project treats the architecture itself as the product, and every subsystem is reviewed against the architecture review process before implementation.

Its main goals are to support OS research, FPGA-based system architecture, secure device mediation, hardware bring-up, heterogeneous compute experiments, and retro-modern workstation design. 

Where WIZnet Fits

The WIZnet product used (planned) in this project is the W5500.

The W5500 is not part of ATARIX's security core or the Fabric Northbridge. According to the README's Rev A baseline, the W5500 is likely used as the early networking means for netboot (network boot) and NTP (time synchronization) during hardware bring-up.

Separating the roles makes the structure clear:

  • WDC W65C816S (CPU card): deterministic execution such as kernel execution and interrupt handling
  • ECP5 FPGA (Fabric Northbridge): system integration point for service discovery, mailbox transport, DMA, interrupt routing, memory services, etc.
  • RP2350 (Supervisor): reset, recovery, RTC, watchdog, health monitoring, fault logging
  • W5500 (networking): netboot and NTP during bring-up — the early connection that pulls the system up from the network and sets the time

Stable wired Ethernet matters during bring-up, and since the W5500 provides a hardware TCP/IP stack, an SPI interface, eight independent sockets, and a 32 KB internal buffer, it is well suited to implementing netboot/NTP without forcing the host (or supervisor) to carry complex network protocol processing. It also fits ATARIX's trust-nothing doctrine, which treats network connectivity as an explicit, containable object ("connectivity is not trust").

Implementation Notes

ATARIX is written mostly in C, with its public C interface organized under include/atarix/. Key subsystems include:

  • Discovery (discovery.h): discovery wire format, magic/version constants, record alignment/types/flags, CRC coverage
  • Operations (operations.h): canonical operation identifiers such as READ, WRITE, CONTROL, RESET, BOOT, RECOVER, DELEGATE, REVOKE
  • Rings (rings.h): privilege rings (coarse-grained security boundaries) and wire-format mappings
  • Capability: a capability model that is scoped, revocable, auditable, and bound to intended authority
  • Mailbox: the transport layer for inter-object communication (transport itself grants no authority)

From a networking standpoint, the W5500 typically connects to a host MCU over SPI. Below is not code from the ATARIX repository, but a general flow you might reference when designing W5500 netboot.

[power/reset]
  -> Initialize supervisor (RP2350)
  -> Initialize W5500 over SPI (CLK/MOSI/MISO/CS/RESET/INT)
  -> Confirm link up -> DHCP or static IP
  -> Synchronize time via NTP
  -> netboot: receive boot image from the network
  -> Hand off control to the Fabric Northbridge

Note: The W5500 is SPI-based, so the CLK / MOSI / MISO / CS / RESET / INT pins must match between the board specification and firmware. It is more stable not to share the SPI pins with other devices.

Practical Tips / Pitfalls

  • This is an architecture/research-focused project. It is not a finished workstation product, but a phase of progressively implementing specification (ATX-SPEC) documents and the capability/ring/mailbox models.
  • The W5500 is currently planned for bring-up netboot/NTP, not as a security core. Do not conflate the roles.
  • During bring-up, keeping the network path simple helps debugging. Verify link-up → IP acquisition → NTP → netboot step by step.
  • The W65C816S is an implementation target, not an architectural constraint. The doctrine is to avoid leaking CPU-specific details into the public interface, anticipating future CPU-card swaps.
  • New work must answer questions (ARC-SEC) such as "does this create/transfer/persist/expose authority, and does it increase attack surface?" before implementation.

Similar Project

https://maker.wiznet.io/ssekim/projects/apache-nuttx-real-time-operating-system/

Both projects are similar in that they are OS/system-software-level projects that use the W5500 as a means of network connectivity. However, ATARIX is a research project designing a new capability-based security architecture from the ground up, while NuttX is a mature RTOS emphasizing standards compliance and a small footprint.

Similarities

ItemSimilarity
LayerBoth are OS/system-software-level projects.
Open sourceBoth are released as open source.
NetworkingBoth provide/use Ethernet connectivity via the W5500.
Embedded targetBoth target small embedded/board environments.
Low-level controlBoth deal with low-level, close-to-hardware control.

Differences

ItemATARIXApache NuttX RTOS
NatureNew architecture research projectMature general-purpose RTOS
Core valueCapability-based security + trust-nothing doctrinePOSIX compatibility + small footprint
CPU directionInterchangeable CPU cards (initially W65C816S)Ports to many MCUs/SoCs
Integration hubECP5 FPGA Fabric NorthbridgeStandard kernel + device drivers
W5500 roleBring-up netboot/NTP networkingGeneral network stack connectivity
Product viewThe architecture is the productA working RTOS kernel

FAQ

Q: What kind of project is ATARIX? A: A modular experimental workstation / OS architecture research project centered on interchangeable CPU cards, an ECP5 FPGA Fabric Northbridge, and capability-based security.

Q: What role does the W5500 play here? A: Per the Rev A baseline, it is likely used as networking for netboot and NTP during hardware bring-up. It is not a security-core component.

Q: Why use an old CPU like the W65C816S? A: The W65C816S is only the Rev A implementation target; the architecture is designed so CPU cards can be swapped, allowing expansion to other processors later.

Q: What phase is it in now? A: Discovery/Capability/Ring/Mailbox/Simulation tests pass (CI 40/40), and it is currently in "Architecture Phase 2: Core System Semantics."


Documents

Documents
Comments Write