SlideShare a Scribd company logo
5
Most read
6
Most read
7
Most read
Information Classification: General
CONTRIBUTE.
COLLABORATE.
COMMERCIALIZE.
December 8-10 | Virtual Event
Information Classification: General
December 8-10 | Virtual Event
Developing for PolarFire® SoC
Hugh Breslin
Design Engineer
Microchip
#RISCVSUMMIT
Information Classification: General
Developing for PolarFire® SoC
Less complicated than it seems!
In this session we’ll be discussing the world’s first RISC-V® based SoC FPGA. With the PolarFire®
SoC, we have been able to create a multi core RISC-V based SoC FPGA that brings more
functionality than any of our previous product families. An SoC FPGA is like a blank canvas, which
means you must develop your HDL design, generate, program the part and test before you can get
started.
In this presentation we will discuss:
• Functionality of the application and monitor cores
• How to develop for bare metal
• How to develop for an FPGA
My hope is that at the end of the presentation, developing with PolarFire SoC will seem less
complicated!
Information Classification: General
Developing for PolarFire® SoC
• Worlds first RISC-V based SoC FPGA
• FPGAs = Complicated? Nope!
• PolarFire SoC = Dynamic
• RISC-V = Invisible
FPGA
SoC
Information Classification: General
Developing for PolarFire® SoC
• MSS
• 5 Cores
• 1 Monitor core
• 4 Application cores
• Peripherals
• Universal Asynchronous Receiver Transmitter (UART), Universal Serial Bus (USB), Controller Area
Network (CAN), General-Purpose Input/Output (GPIO), Ethernet, Double data rate (DDR), MMC,
etc.
• FPGA
• PolarFire FPGA
• Programable logic, Serializer/Deserializer (SerDes), PCI, MATH blocks, Static random-access memory
(SRAM), etc.
• MSS + FPGA = freedom and flexibility
Information Classification: General
The Application Cores
• U54 Application cores
• 1 core / 2 core / 3 cores / 4 cores
• 1 + 3
• 2 + 2
• 2 + 1 + 1
• 1 + 1 + 1 + 1
• Bare metal: SoftConsole IDE
• Linux®: Buildroot / Yocto
#ifndef MPFS_HAL_FIRST_HART
#define MPFS_HAL_FIRST_HART 0
#endif
#ifndef MPFS_HAL_LAST_HART
#define MPFS_HAL_LAST_HART 4
#endif
void u54_1(void)
{}
__attribute__((weak)) void u54_1(void)
{
/* Put hart in safe infinite WFI loop. */
park_hart();
}
Information Classification: General
The Monitor Core
• E51 Monitor core
• Hart Software Services (HSS)
• System Services
• Message Sharing
• Boot
U54_1 U54_2 U54_3 U54_4
Cache Cache Cache Cache
System Bus
Memory
Linux
I/O
E51
Cache
HSS
Communication Layer
RTOS
Information Classification: General
Bare Metal Development
• Bare metal: SoftConsole IDE
• Example projects:
• Each peripheral driver
• How to use the functions provided
• SoftConsole: build, debug and emulate
• Examples are all pre-configured
Information Classification: General
mss_init_mutex((uint64_t)&uart_lock);
MSS_UART_init( &g_mss_uart0_lo,
MSS_UART_115200_BAUD,
MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT);
/* Receive interrupt is enabled now. Please see uart0_rx_handler() for
* more details */
MSS_UART_set_rx_handler(&g_mss_uart0_lo,
uart0_rx_handler,
MSS_UART_FIFO_SINGLE_BYTE);
MSS_UART_enable_local_irq(&g_mss_uart1_lo);
/* Demonstrating polled MMUART transmission */
uart_tx_with_mutex(&g_mss_uart0_lo, (uint64_t)&uart_lock,
g_message1, sizeof(g_message1));
mss_take_mutex((uint64_t)&uart_lock);
/* Demonstrating interrupt method of transmission */
MSS_UART_irq_tx(&g_mss_uart0_lo, g_message2, sizeof(g_message2));
/* Makes sure that the previous interrupt based transmission is completed
* Alternatively, you could register TX complete handler using
* MSS_UART_set_tx_handler() */
while (0u == MSS_UART_tx_complete(&g_mss_uart0_lo))
{
;
}
Driver Example: MMUART
Information Classification: General
Customizing Builds:
Development History
Information Classification: General
FPGA Development
• FPGA development
• Libero® SoC Design Suite v12.5+
• Build on top of the out of the box
design
Information Classification: General
Summary
• PolarFire® SoC
• Easy to develop for
• Highly configurable
• How are we transparent?
• Smart use of defines in code
• Providing:
• Build systems with platform support and commit history
• Examples for all drivers
• Pre-built images - users need: FPGA, HSS and payload
• FPGA + HSS
• Payload
Information Classification: General
December 8-10 | Virtual Event
Thank you for joining us.
Contribute to the RISC-V conversation on social!
#RISCVSUMMIT @risc_v

More Related Content

PDF
Linux Internals - Interview essentials 4.0
PDF
Soc architecture and design
PDF
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
PDF
ebpf and IO Visor: The What, how, and what next!
PDF
BPF Internals (eBPF)
PPTX
Embedded System Programming on ARM Cortex M3 and M4 Course
PDF
The linux networking architecture
PPTX
Berkeley Packet Filters
Linux Internals - Interview essentials 4.0
Soc architecture and design
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
ebpf and IO Visor: The What, how, and what next!
BPF Internals (eBPF)
Embedded System Programming on ARM Cortex M3 and M4 Course
The linux networking architecture
Berkeley Packet Filters

What's hot (20)

PDF
HKG18-318 - OpenAMP Workshop
PDF
U-Boot - An universal bootloader
PPTX
The TCP/IP Stack in the Linux Kernel
PPTX
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
PDF
Introduction to eBPF
PDF
eBPF - Rethinking the Linux Kernel
PDF
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
PDF
EBPF and Linux Networking
PDF
Making Linux do Hard Real-time
PPTX
SoC: System On Chip
PDF
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
PPTX
Vxlan deep dive session rev0.5 final
PPTX
U-Boot presentation 2013
PPTX
RISC-V Introduction
PDF
LCU13: An Introduction to ARM Trusted Firmware
PDF
Introduction to eBPF and XDP
PPTX
Vxlan control plane and routing
PDF
eBPF/XDP
HKG18-318 - OpenAMP Workshop
U-Boot - An universal bootloader
The TCP/IP Stack in the Linux Kernel
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
Introduction to eBPF
eBPF - Rethinking the Linux Kernel
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
EBPF and Linux Networking
Making Linux do Hard Real-time
SoC: System On Chip
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
Vxlan deep dive session rev0.5 final
U-Boot presentation 2013
RISC-V Introduction
LCU13: An Introduction to ARM Trusted Firmware
Introduction to eBPF and XDP
Vxlan control plane and routing
eBPF/XDP
Ad

Similar to Developing for polar fire soc (20)

PDF
Renaissance of sparc UKOUG 2014
PDF
Introduction to OpenBricks: an Embedded Linux Framework
PDF
Improving POD Usage in Labs, CI and Testing
PDF
Dragon board 410c workshop - slideshow
PDF
Embedded Linux BSP Training (Intro)
PPTX
Easily emulating full systems on amazon fpg as
PPTX
Advanced SOHO Router Exploitation XCON
PDF
제3회난공불락 오픈소스 인프라세미나 - lustre
PDF
C# on a CHIPs
PDF
[CCP Games] Versioning Everything with Perforce
PDF
Hacking with ARM Mobile devices on Linux
PPTX
FPGA workshop
PDF
Tools for FPGA Development
PDF
UEFI presentation
PDF
IoT: Contrasting Yocto/Buildroot to binary OSes
PDF
0xdroid -- community-developed Android distribution by 0xlab
PDF
Linux io introduction-fudcon-2015-with-demo-slides
PDF
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
PDF
Building Embedded Linux Full Tutorial for ARM
PPTX
Design, Build,and Maintain the Embedded Linux Platform
Renaissance of sparc UKOUG 2014
Introduction to OpenBricks: an Embedded Linux Framework
Improving POD Usage in Labs, CI and Testing
Dragon board 410c workshop - slideshow
Embedded Linux BSP Training (Intro)
Easily emulating full systems on amazon fpg as
Advanced SOHO Router Exploitation XCON
제3회난공불락 오픈소스 인프라세미나 - lustre
C# on a CHIPs
[CCP Games] Versioning Everything with Perforce
Hacking with ARM Mobile devices on Linux
FPGA workshop
Tools for FPGA Development
UEFI presentation
IoT: Contrasting Yocto/Buildroot to binary OSes
0xdroid -- community-developed Android distribution by 0xlab
Linux io introduction-fudcon-2015-with-demo-slides
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Building Embedded Linux Full Tutorial for ARM
Design, Build,and Maintain the Embedded Linux Platform
Ad

More from RISC-V International (20)

PDF
WD RISC-V inliner work effort
PDF
RISC-V Zce Extension
PDF
RISC-V Online Tutor
PPTX
London Open Source Meetup for RISC-V
PPTX
Ziptillion boosting RISC-V with an efficient and os transparent memory comp...
PPTX
Static partitioning virtualization on RISC-V
PDF
Standardizing the tee with global platform and RISC-V
PDF
Semi dynamics high bandwidth vector capable RISC-V cores
PPTX
Security and functional safety
PPTX
Reverse Engineering of Rocket Chip
PPTX
RISC-V NOEL-V - A new high performance RISC-V Processor Family
PPTX
RISC-V 30910 kassem_ summit 2020 - so_c_gen
PDF
RISC-V 30908 patra
PPTX
RISC-V 30907 summit 2020 joint picocom_mentor
PPTX
RISC-V 30906 hex five multi_zone iot firmware
PPTX
RISC-V 30946 manuel_offenberg_v3_notes
PDF
RISC-V software state of the union
PDF
Ripes tracking computer architecture throught visual and interactive simula...
PPTX
Porting tock to open titan
PPTX
Open j9 jdk on RISC-V
WD RISC-V inliner work effort
RISC-V Zce Extension
RISC-V Online Tutor
London Open Source Meetup for RISC-V
Ziptillion boosting RISC-V with an efficient and os transparent memory comp...
Static partitioning virtualization on RISC-V
Standardizing the tee with global platform and RISC-V
Semi dynamics high bandwidth vector capable RISC-V cores
Security and functional safety
Reverse Engineering of Rocket Chip
RISC-V NOEL-V - A new high performance RISC-V Processor Family
RISC-V 30910 kassem_ summit 2020 - so_c_gen
RISC-V 30908 patra
RISC-V 30907 summit 2020 joint picocom_mentor
RISC-V 30906 hex five multi_zone iot firmware
RISC-V 30946 manuel_offenberg_v3_notes
RISC-V software state of the union
Ripes tracking computer architecture throught visual and interactive simula...
Porting tock to open titan
Open j9 jdk on RISC-V

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Big Data Technologies - Introduction.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Modernizing your data center with Dell and AMD
PPTX
Cloud computing and distributed systems.
PPTX
A Presentation on Artificial Intelligence
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Approach and Philosophy of On baking technology
The AUB Centre for AI in Media Proposal.docx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Per capita expenditure prediction using model stacking based on satellite ima...
Chapter 3 Spatial Domain Image Processing.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Big Data Technologies - Introduction.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Digital-Transformation-Roadmap-for-Companies.pptx
Modernizing your data center with Dell and AMD
Cloud computing and distributed systems.
A Presentation on Artificial Intelligence
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Network Security Unit 5.pdf for BCA BBA.
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Approach and Philosophy of On baking technology

Developing for polar fire soc

  • 2. Information Classification: General December 8-10 | Virtual Event Developing for PolarFire® SoC Hugh Breslin Design Engineer Microchip #RISCVSUMMIT
  • 3. Information Classification: General Developing for PolarFire® SoC Less complicated than it seems! In this session we’ll be discussing the world’s first RISC-V® based SoC FPGA. With the PolarFire® SoC, we have been able to create a multi core RISC-V based SoC FPGA that brings more functionality than any of our previous product families. An SoC FPGA is like a blank canvas, which means you must develop your HDL design, generate, program the part and test before you can get started. In this presentation we will discuss: • Functionality of the application and monitor cores • How to develop for bare metal • How to develop for an FPGA My hope is that at the end of the presentation, developing with PolarFire SoC will seem less complicated!
  • 4. Information Classification: General Developing for PolarFire® SoC • Worlds first RISC-V based SoC FPGA • FPGAs = Complicated? Nope! • PolarFire SoC = Dynamic • RISC-V = Invisible FPGA SoC
  • 5. Information Classification: General Developing for PolarFire® SoC • MSS • 5 Cores • 1 Monitor core • 4 Application cores • Peripherals • Universal Asynchronous Receiver Transmitter (UART), Universal Serial Bus (USB), Controller Area Network (CAN), General-Purpose Input/Output (GPIO), Ethernet, Double data rate (DDR), MMC, etc. • FPGA • PolarFire FPGA • Programable logic, Serializer/Deserializer (SerDes), PCI, MATH blocks, Static random-access memory (SRAM), etc. • MSS + FPGA = freedom and flexibility
  • 6. Information Classification: General The Application Cores • U54 Application cores • 1 core / 2 core / 3 cores / 4 cores • 1 + 3 • 2 + 2 • 2 + 1 + 1 • 1 + 1 + 1 + 1 • Bare metal: SoftConsole IDE • Linux®: Buildroot / Yocto #ifndef MPFS_HAL_FIRST_HART #define MPFS_HAL_FIRST_HART 0 #endif #ifndef MPFS_HAL_LAST_HART #define MPFS_HAL_LAST_HART 4 #endif void u54_1(void) {} __attribute__((weak)) void u54_1(void) { /* Put hart in safe infinite WFI loop. */ park_hart(); }
  • 7. Information Classification: General The Monitor Core • E51 Monitor core • Hart Software Services (HSS) • System Services • Message Sharing • Boot U54_1 U54_2 U54_3 U54_4 Cache Cache Cache Cache System Bus Memory Linux I/O E51 Cache HSS Communication Layer RTOS
  • 8. Information Classification: General Bare Metal Development • Bare metal: SoftConsole IDE • Example projects: • Each peripheral driver • How to use the functions provided • SoftConsole: build, debug and emulate • Examples are all pre-configured
  • 9. Information Classification: General mss_init_mutex((uint64_t)&uart_lock); MSS_UART_init( &g_mss_uart0_lo, MSS_UART_115200_BAUD, MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); /* Receive interrupt is enabled now. Please see uart0_rx_handler() for * more details */ MSS_UART_set_rx_handler(&g_mss_uart0_lo, uart0_rx_handler, MSS_UART_FIFO_SINGLE_BYTE); MSS_UART_enable_local_irq(&g_mss_uart1_lo); /* Demonstrating polled MMUART transmission */ uart_tx_with_mutex(&g_mss_uart0_lo, (uint64_t)&uart_lock, g_message1, sizeof(g_message1)); mss_take_mutex((uint64_t)&uart_lock); /* Demonstrating interrupt method of transmission */ MSS_UART_irq_tx(&g_mss_uart0_lo, g_message2, sizeof(g_message2)); /* Makes sure that the previous interrupt based transmission is completed * Alternatively, you could register TX complete handler using * MSS_UART_set_tx_handler() */ while (0u == MSS_UART_tx_complete(&g_mss_uart0_lo)) { ; } Driver Example: MMUART
  • 10. Information Classification: General Customizing Builds: Development History
  • 11. Information Classification: General FPGA Development • FPGA development • Libero® SoC Design Suite v12.5+ • Build on top of the out of the box design
  • 12. Information Classification: General Summary • PolarFire® SoC • Easy to develop for • Highly configurable • How are we transparent? • Smart use of defines in code • Providing: • Build systems with platform support and commit history • Examples for all drivers • Pre-built images - users need: FPGA, HSS and payload • FPGA + HSS • Payload
  • 13. Information Classification: General December 8-10 | Virtual Event Thank you for joining us. Contribute to the RISC-V conversation on social! #RISCVSUMMIT @risc_v