Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Installing NetBSD on Jetson Nano



I installed Jetpack 4.5 a while back which changed the boot process
for the Nano and now allows booting from USB which the recent Armbian
releases take advantage of. The Jetpack 4.5 release notes say:

"Boot firmware for all Jetson Nano developer kits updated to relocate
boot firmware to integrated QSPI-NOR."

https://forums.developer.nvidia.com/t/jetpack-4-5-production-release-with-l4t-32-5/166475

That's as much as I can tell you about the Nano boot process.

On Sun, Jan 23, 2022 at 2:51 AM Jason Mitchell <jmitchel%bigjar.com@localhost> wrote:
>
> Okay, this is confusing to me. There's no U-Boot at all, unless it's further on. Where does the DOS partition start? Maybe hexdump up to the start of the DOS partition?
>
> HTH,
>
> Jason M.
>
> Get BlueMail for Android
> On Jan 21, 2022, at 5:17 PM, Dan MacDonald <allcoms%gmail.com@localhost> wrote:
>>
>> $ hexdump -C -n 4194304
>> Armbian_22.02.0-trunk.0016_Jetson-nano_jammy_edge_5.16.2.img
>> 00000000  fa b8 00 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |................|
>> 00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
>> 00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
>> 00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
>> 00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
>> 00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>> *
>> 000001b0  00 00 00 00 00 00 00 00  5e 12 03 bd 00 00 00 00  |........^.......|
>> 000001c0  41 00 83 03 e0 ff 00 80  00 00 00 20 32 00 00 00  |A.......... 2...|
>> 000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>> *
>> 000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
>> 00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>> *
>> 00400000
>>
>> On Fri, Jan 21, 2022 at 9:04 PM Jason Mitchell <jmitchel%bigjar.com@localhost> wrote:
>>>
>>>
>>>  Dan,
>>>
>>>  This document says there are four separate boot loaders. I can't tell for certain, but they might also need to be on the boot media.
>>>
>>>  https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_nano.html
>>>
>>>  The output of hexdump -C of the first 2 or 4 megabytes of the Jetson Armbian image should tell us if Armbian has extra boot code we need.
>>>
>>>  HTH,
>>>
>>>  Jason M.
>>>
>>>  Get BlueMail for Android
>>>  On Jan 20, 2022, at 2:49 PM, Dan MacDonald <allcoms%gmail.com@localhost> wrote:
>>>>
>>>>
>>>>  Hi Jason
>>>>
>>>>  I'm closer to getting NetBSD to boot thanks to your help but no dice yet!
>>>>
>>>>  I can see that the latest NetBSD current builds do have the required
>>>>  .dtb included for the Jetson Nano so its looking more promising but
>>>>  now I have two or three more questions.
>>>>
>>>>  There are now two images available for NetBSD arm64 current,
>>>>  arm64mbr.img.gz and arm64.img.gz. I think its pretty safe to presume
>>>>  that arm64.img is the UEFI image and hence not the one I want. I'd
>>>>  expect arm64mbr.img.gz is the one I should be using but it would be
>>>>  nice to know for sure because neither boots OOTB. The arm64mbr image
>>>>  is the only one that my Linux laptop can read a partition of, the boot
>>>>  partition.
>>>>
>>>>  Then we have the u-boot tarball which contains two files in
>>>>  uboot/share/u-boot/jetson-nano - u-boot  which is about 7 MB and
>>>>  u-boot-dtb.bin which is about 600 K. I have tried dd'ing both onto the
>>>>  arm64mbr image, one at a time and reflashing before trying the next,
>>>>  but neither booted. I also tried copying u-boot-dtb.bin into a few
>>>>  dirs on the boot partition - in the root dir, in the DTB dir and in
>>>>  DTB/Nvidia - no boot yet!
>>>>
>>>>  I asked in #netbsd and someone thinks I may have to use a USB cable to
>>>>  flash the u-boot-dtb.bin onto the nano but that was all they had to
>>>>  offer in the way of help and I've not found any guides to installing
>>>>  NetBSD on the Jetson TK1 yet either.
>>>>
>>>>  Thanks again for your help!
>>>>
>>>>  On Thu, Jan 20, 2022 at 12:23 PM Jason Mitchell <jmitchel%bigjar.com@localhost> wrote:
>>>>>
>>>>>
>>>>>
>>>>>   Dan,
>>>>>
>>>>>   Responses below.
>>>>>
>>>>>   HTH,
>>>>>
>>>>>   Jason M.
>>>>>
>>>>>   On 1/20/22 3:34 AM, Dan MacDonald wrote:
>>>>>>
>>>>>>
>>>>>>   Hi Jason
>>>>>>
>>>>>>   Thanks for your feedback.
>>>>>>
>>>>>>   So it sounds like I may be able to get away with writing the Tegra
>>>>>>   u-boot to the arm64 image, once I have an image that includes the
>>>>>>   tegra210-p3450-0000.dtb I require.
>>>>>>
>>>>>>   I have seen tegra210-p3450-0000.dtb on one of the NetBSD FTP sites. I
>>>>>>   don't suppose I might be able to copy that dtb onto the NetBSD 9.2
>>>>>>   arm64 image and expect it to work?
>>>>>
>>>>>
>>>>>
>>>>>   The dtb file needs to be on the DOS partition and it needs to be where
>>>>>   u-boot expects it. If you build the u-boot package you should be able to
>>>>>   see what dtb filename u-boot wants and what directory it should be in.
>>>>>   This will be in the u-boot config file that gets created in the work
>>>>>   directory under sysutils/u-boot-jetson-nano.
>>>>>
>>>>>>     I'd rather not have to but I
>>>>>>   presume I'm going to have to build the latest NetBSD from source in
>>>>>>   order to get an image that includes this dtb. Is there a guide to
>>>>>>   building the aarch64 port of NetBSD 10 anywhere?
>>>>>
>>>>>
>>>>>
>>>>>   I don't see why you would need to build current just to get the dtb
>>>>>   file. You might need to run -current to support the Jetson, but since
>>>>>   there are NetBSD daily builds, you should just be able to download an
>>>>>   image from:
>>>>>   http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/latest/evbarm-aarch64/binary/gzimg/
>>>>>
>>>>>   If you want a guide to compiling NetBSD google (compiling the kernel
>>>>>   using build.sh). It's chapter 31 of the NetBSD guide (I think).
>>>>>
>>>>>>   I'm hoping Jared will see this and be able to give exact instructions
>>>>>>   so we can get this process documented either on the NetBSD Tegra page
>>>>>>   or on the NetBSD wiki. The NetBSD web site could really do with a
>>>>>>   overhaul- there seems to be lots of vital info missing and it looks
>>>>>>   like a relic from the 90s.
>>>>>>
>>>>>>   On Wed, Jan 19, 2022 at 10:37 PM Jason Mitchell <jmitchel%bigjar.com@localhost> wrote:
>>>>>>>
>>>>>>>
>>>>>>>   On 1/19/22 4:43 AM, Dan MacDonald wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>   I've not been able to find any instructions or confirmation that it is
>>>>>>>>   possible to install NetBSD on the Jetson Nano other than a NetBSD
>>>>>>>>   mailing list post from Jared McNeil saying that I would need to use
>>>>>>>>   the tegra210-p3450-0000.dtb:
>>>>>>>>
>>>>>>>>   http://mail-index.netbsd.org/port-arm/2020/01/31/msg006479.html
>>>>>>>>
>>>>>>>>   I’ve tried the NetBSD 9.2 evbarm-aarch64 image and it wouldn’t boot
>>>>>>>>   for me, likely because it doesn't include the tegra210-p3450-0000.dtb.
>>>>>>>>
>>>>>>>>   Would I need to build NetBSD 10 from source to install it on my Jetson
>>>>>>>>   Nano or are there pre-built NetBSD arm64 images somewhere that do
>>>>>>>>   include the required dtb and u-boot? I don't think the Jetson Nano
>>>>>>>>   supports UEFI.
>>>>>>>>
>>>>>>>>   Recent versions of Jetpack (the reference OS for Jetson devices) and
>>>>>>>>   Armbian let me boot straight from USB 3. Might this also be possible
>>>>>>>>   with NetBSD or will I only be able to boot from MicroSD?
>>>>>>>>
>>>>>>>>   Thanks
>>>>>>>
>>>>>>>
>>>>>>>   Hello,
>>>>>>>
>>>>>>>         From what I understand the boot process for ARM devices goes like this:
>>>>>>>
>>>>>>>   1) Device power on
>>>>>>>
>>>>>>>   1b) There could be a step here if there's some nvidia specific code on
>>>>>>>   the SPI flash or in ROM
>>>>>>>
>>>>>>>   2) Load u-boot from SPI flash or boot device*
>>>>>>>
>>>>>>>   3) Load EFI code on the DOS partition and execute it
>>>>>>>
>>>>>>>   4) The EFI code looks for a kernel on an FFS partition and executes it.
>>>>>>>
>>>>>>>         The questions I don't know the answer to are:
>>>>>>>
>>>>>>>   1) Does the Jetson Nano have u-boot installed in SPI flash?
>>>>>>>
>>>>>>>   2) If u-boot is present on the boot media and in SPI flash which is
>>>>>>>   loaded first?
>>>>>>>
>>>>>>>   3) Where does the Jetson expect u-boot to be on the boot drive
>>>>>>>
>>>>>>>         It looks like you're using a generic image which probably doesn't
>>>>>>>   have u-boot on it. There's a package in pkgsrc (and also in pkgsrc-wip)
>>>>>>>   containing u-boot for the Jetson nano (sysuttils/u-boot-jetson-nano). If
>>>>>>>   you downloaded that you could copy it onto a microSD card that contained
>>>>>>>   the base NetBSD ARM image (arm64.img.gz). I thought the package would
>>>>>>>   print the dd command necessary to install the u-boot file, but it
>>>>>>>   doesn't look like it does. I think:
>>>>>>>
>>>>>>>         dd if=u-boot of=/dev/*disk* seek=64     is the command for other
>>>>>>>   platforms.
>>>>>>>
>>>>>>>         To boot NetBSD off of a USB device I'm nearly certain you'll need
>>>>>>>   to load u-boot into the SPI flash. Maybe the Jetson will look for u-boot
>>>>>>>   on a USB device , I don't know.
>>>>>>>
>>>>>>>         My understanding of this is incomplete, but hopefully this will
>>>>>>>   shed some light on the subject.
>>>>>>>
>>>>>>>   HTH,
>>>>>>>
>>>>>>>   Jason M.
>>>>>>>
>>>>>>>   * u-boot lives in unallocated space between the MBR and the DOS
>>>>>>>   partition starting at 0x8000 on the disk (at least on some ARM chips)
>>>>>
>>>>>
>>>>>


Home | Main Index | Thread Index | Old Index