Creating a baremetal kernel for 410c?

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

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.

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.

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:

  • Device tree and Linux drivers from linaro qcom-integration tree:
    (working/qualcomm/kernel.git - Qualcomm Landing Team kernel branch integration-linux-qcomlt)

  • Little kernel sources (i.e. fastboot) fron ndec branch:
    nicolas.dechesne/lk.git - [no description]

  • Documentation from 96-boards page (mostly HRD from Qualcomm). Warning: this is 5k page document that is barely readable :frowning:

  • ARMv8 Architecture Reference Manual (from ARM). Warning: this document also has 5k pages, but it’s very readable :slight_smile:

  • Various datasheets from Google (for example PMIC)

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