Creating a baremetal kernel for 410c?


#1

Hi fellow developers,

I am considering buying the dragonboard 410c for the writing of a hobby UNIX operating system for the A53 / ARMv8 cores and I was wondering if I have any chances at writing non-abi or at least elf abi custom kernels for this board, and if so at what address is the code loaded through LK? which memory address should I jump into shall it be necessary to do it manually? What peripherals I can access in a memory mapped fashion? Thanks in advance for your answers :slight_smile:

Regards,
debuggerj


#2

For simplicity - you want to use fastboot to boot your OS.

To do that, you must encapsulate your blob into fastboot-compatible image and add fake device tree/ramdisk/cmdline. You can use steps I use for u-boot images:

As for binary - it only needs “proprietary” header like this one:

Default entry address is 0x80080000, SDRAM starts @ 0x80000000; Remember that top of the ram is reserved for TrustZone.


#3

You are the man, will the device tree be useful for me to do access devices in my kernel (aka provide me beneficial info), and do I have the option of using a none-eabi kernel instead? You saved me a few days of looking with this, is the information you provided above in any of the pdf’s around? I’m curious whether it’s my laziness or Qualcomm’s fault, thanks again.


#4

You can probably use any compiler you want to.
Just add header and fastboot will jump to your code in aarch64 or aarch32 mode.

My top secret sources of information:

And of course bunch of nice people on #96boards and this forum :slight_smile: